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

回答編集履歴

1

回答内容追加

2016/04/22 07:29

投稿

tkturbo
tkturbo

スコア5572

answer CHANGED
@@ -2,4 +2,36 @@
2
2
  if(counter % 7 == 0) { System.out.println(); }
3
3
  ```
4
4
 
5
- これじゃだめですかね?
5
+ これじゃだめですかね?
6
+
7
+ 追記:
8
+ swordoneさんのソースを一部改編したうえで解説してみます。
9
+
10
+ ```java
11
+ コード
12
+ // int month は前のほうで宣言したものを再利用
13
+ month = cal.get(Calendar.MONTH);
14
+ for( /* ← for文の初期処理部分は省略 */
15
+ ;cal.get(Calendar.MONTH) == month /* ← for文の続行判定:ループに入った時と月が同じ間だけ実行 */
16
+ ;cal.add(Calendar.DATE, 1) /* ← for文の次処理準備:Calendarインスタンス「cal」の日付を翌日に進める */
17
+ ){
18
+
19
+ int day = cal.add(Calendar.DATE); // 何度も使うので日付の数値だけ変数に確保
20
+
21
+ // 区切りスペース出力
22
+ System.out.print(" ");
23
+
24
+ // dayが10未満なら10の位の文のスペース出力
25
+ if ( day < 10 ) System.out.print(" ");
26
+
27
+ // 日付出力
28
+ System.out.print(day);
29
+
30
+ // dayの曜日 == calの日付の曜日を取得・土曜日だったら開業
31
+ if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY){
32
+ System.out.println();
33
+ }
34
+ }
35
+ ```
36
+ 各行の意味はコメントで記述しています。
37
+ 理解の一助になれば。