No.3ベストアンサー
- 回答日時:
>入力なしで・・・というのがコマンドラインパラメータでなくてという意味でしょうか?そのときはmonthに直接代入してください。
←よけいなお世話かも。当方もJAVA初心者でおこがましいのですが回答が無い様なので・・・・
//2004年カレンダーの表示 コマンドラインパラメーターで表示月を入力
public class Calender{
public static void main(String[] args){
int month , i , weekday , arrday ;
//月の日数を格納 mth[0]の 4 は2004年元日の位置(シフト用)
int[] mth = {4,31,29,31,30,31,30,31,31,30,31,30,31};
String week = " 日 月 火 水 木 金 土";
month = Integer.parseInt(args[0]);
//表示する月以前の累積日数を計算するループ
int alldays = 0 ;
for (i= month -1 ; i >= 0 ;i-- ) {
alldays = mth[i] + alldays ;
}
//初日の位置決め
weekday = alldays % 7 ;
//配列の生成数 当月日数+開始位置+1
arrday = mth[month] + weekday +1;
//String の配列宣言
String[] day = new String[arrday];
//配列に格納する String型の初期化
String sday = "";
//配列に格納するループ
for ( i=0 ; i < arrday ; i++ ) {
//格納する日付をString型に変換
sday = String.valueOf( i - weekday );
if ( i <= weekday ) {//開始までの空白条件
day[i] = " ";
} else if ( (i - weekday) < 10 ) {
day[i] = " " + sday ;//一桁の位置調整条件
} else {
day[i] = " " + sday ;
}
}
System.out.println( "\n ★" + month +"月のカレンダー★\n");
System.out.println( week );
//表示用のループ 7配列表示で改行
for ( i=0 ; i < arrday ; i++ ) {
System.out.print( day[i] );
if ( i % 7 == 0 ) {
System.out.println();
}
}
System.out.println();
}
}
コマンドプロンプトで以下のように出力されます。
★7月のカレンダー★
日 月 火 水 木 金 土
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
No.4
- 回答日時:
これって基本的なことが解っているなら、
アルゴリズムの問題でしかない気が・・・。(^^;)
とりあえず、簡単に、当月のカレンダーを、
表示するだけのアプリケーションを作成しました。
かなり、適当なので、参考までに。(^^;)
//CalendarApp.java
import java.text.*;
import java.util.*;
import java.awt.*;
import javax.swing.*;
public class CalendarApp extends JFrame{
public CalendarApp(){
JLabel[][] cal = new JLabel[7][7];
JPanel panel = new JPanel();
Calendar now = Calendar.getInstance();
int month = now.get(Calendar.MONTH);
//月の初日へセット
now.set(Calendar.DATE,1);
//レイアウトの設定
getContentPane().setLayout(new BorderLayout());
//カレンダーの見出し
getContentPane().add(new JLabel(new SimpleDateFormat("yyyy年MM月").format(now.getTime())),BorderLayout.NORTH);
//カレンダーヘッダー部の設定
cal[0][0]=new JLabel("日");
cal[0][1]=new JLabel("月");
cal[0][2]=new JLabel("火");
cal[0][3]=new JLabel("水");
cal[0][4]=new JLabel("木");
cal[0][5]=new JLabel("金");
cal[0][6]=new JLabel("土");
//カレンダー本体の初期化
for(int i=1;i<cal.length;i++) for(int j=0;j<cal[0].length;j++)
cal[i][j] = new JLabel();
//カレンダーの生成
for(int i=1;month==now.get(Calendar.MONTH) && i<cal.length;i++)
for(int j=0;month==now.get(Calendar.MONTH) && j<cal[0].length;j++,now.add(Calendar.DATE,1)){
if(i==1 && j==0) j=now.get(Calendar.DAY_OF_WEEK)-1;
cal[i][j] = new JLabel(Integer.toString(now.get(Calendar.DATE)));
}
//生成したカレンダーをパネルへセット
panel.setLayout(new GridLayout(cal.length,cal[0].length));
for(int i=0;i<cal.length;i++) for(int j=0;j<cal[0].length;j++)
panel.add(cal[i][j]);
//パネルをアプリケーション本体へ追加
getContentPane().add(panel,BorderLayout.CENTER);
//コンポーネントの表示
setVisible(true);
}
public static void main(String args[]){
CalendarApp app = new CalendarApp();
app.setBounds(100,100,250,250);
app.show();
}
}
No.2
- 回答日時:
VBAやExcelでカレンダーを作りました。
コンソールなら、
1.表示位置を指定するためのTABやスペースを設定。
2.月の最初の曜日を得る。
3.曜日位置に従って、表示位置まで移動。
4.土曜か日曜で改行
5.翌週表示。
6.月末日になったら表示終了
No.1
- 回答日時:
もう少し具体的に描いていただかないと回答者の方も回答のしようがありませんよ。
1.出力デバイスは何ですか? (ディスプレイ or プリンタ)
2.使用の言語は何ですか? ( C or VB etc)
COBOL85なら私にも書けるんですが、それ以外では私には無理なんですが(^^;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaのBase64デコードで正しく...
-
jspでの二次元配列
-
String[] とVectorの使い分け
-
C#で動的配列Listの中身をListB...
-
Java配列の問題を教えてくださ...
-
配列を使ってカレンダーを表示...
-
[Ljava.lang.Stringってなんですか
-
JavaのRandomAcc...
-
Javaで文字と数字が混ざったも...
-
JavaBeansの配列の値取得方法に...
-
教えて下さい。for文内での変数...
-
cloneメソッドについて (java)
-
ArrayListクラスのインスタンス...
-
System.err. printlnとSystem.o...
-
コマンドライン引数の例外処理...
-
パソコンキーボードで時分秒を...
-
Javaで改行などが出来ないのです。
-
C言語のポインターに関する警告
-
EXCEL VBA で、0から?1から?
-
最後の行に移動するには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#】ハッシュテーブル(連想...
-
Javaで文字と数字が混ざったも...
-
[Ljava.lang.Stringってなんですか
-
この警告はどうすれば?
-
main(String[] args) の args...
-
C言語でunsigned char配列を連...
-
配列で、値の入っている要素数...
-
C#で動的配列Listの中身をListB...
-
javaで大容量テキストファイル...
-
javaについて
-
javamailで複数人にメールを送...
-
java
-
同じ配列またはクラスを、2回...
-
ページング
-
動的配列確保
-
Javaで文字を漢字であるか否か...
-
csvファイルを2次元配列に格納
-
セッションを使ったint型の値の...
-
javaでEUC-JP文字列→UTF-8への変換
-
『args[]』とは?
おすすめ情報