teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追加

2015/10/08 16:10

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -1,2 +1,27 @@
1
1
  桁合わせのためです.
2
- そのコードが無い状態で実行するとわかりますが,カレンダー表示がずれます.
2
+ そのコードが無い状態で実行するとわかりますが,カレンダー表示がずれます.
3
+ このコードがやっているのは,
4
+ 0. 現在時刻に設定されたGregorianCalendarオブジェクトを作成し,今日の月日を取得
5
+ 0. Calendar.DAY_OF_MONTHフィールドを1,つまり今月の1日に設定する
6
+ 0. doループで今月のカレンダーを出力する.ループ内で日付を1日ずつ加え,月が変わるまで続ける
7
+ ご質問のif文は「日が1桁の場合」という条件分岐です.カレンダーを表示する関係上,1桁の日付は先頭を空白で埋めないとずれてしまうのです.試しにそのif文があるのと無いのとでは次のように出力が変わります.
8
+
9
+ ifなし
10
+ ```
11
+ Sun Mon Tue Wed Thu Fri Sat
12
+ 1 2 3
13
+ 4 5 6 7 8* 9 10
14
+ 11 12 13 14 15 16 17
15
+ 18 19 20 21 22 23 24
16
+ 25 26 27 28 29 30 31
17
+ ```
18
+
19
+ ifあり
20
+ ```
21
+ Sun Mon Tue Wed Thu Fri Sat
22
+ 1 2 3
23
+ 4 5 6 7 8* 9 10
24
+ 11 12 13 14 15 16 17
25
+ 18 19 20 21 22 23 24
26
+ 25 26 27 28 29 30 31
27
+ ```