回答編集履歴
3
バグじゃなかったですorz. Calendar定数置き換え不足修正
answer
CHANGED
@@ -14,10 +14,10 @@
|
|
14
14
|
int year = scan.nextInt();
|
15
15
|
int month = scan.nextInt() - 1; //月は 0 始まりとする
|
16
16
|
|
17
|
-
|
17
|
+
Calendar cal = Calendar.getInstance();
|
18
|
-
cal.set(
|
18
|
+
cal.set(YEAR, year);
|
19
|
-
cal.set(
|
19
|
+
cal.set(MONTH, month);
|
20
|
-
cal.set(
|
20
|
+
cal.set(DATE, 1);
|
21
21
|
|
22
22
|
System.out.println();
|
23
23
|
System.out.println(year + "/" + (month+1) + (((java.util.GregorianCalendar)cal).isLeapYear(year)?"(うるう年)":"") );
|
@@ -25,7 +25,7 @@
|
|
25
25
|
System.out.println("日 月 火 水 木 金 土");
|
26
26
|
System.out.println("---------------------");
|
27
27
|
|
28
|
-
cal.add(
|
28
|
+
cal.add(DATE, SUNDAY-cal.get(DAY_OF_WEEK)); //1日が属する週の日曜日の日付. ex)2019/5/1→2019/4/28
|
29
29
|
for (; cal.get(MONTH) <= month; cal.add(DATE, 1)) {
|
30
30
|
System.out.printf(cal.get(MONTH)<month?" ":"%2d ", cal.get(DATE));
|
31
31
|
if (cal.get(DAY_OF_WEEK) == SATURDAY) System.out.println();
|
2
週の始まりが前年だとうるう年判定に失敗するバグ対応
answer
CHANGED
@@ -18,7 +18,6 @@
|
|
18
18
|
cal.set(Calendar.YEAR, year);
|
19
19
|
cal.set(Calendar.MONTH, month);
|
20
20
|
cal.set(Calendar.DATE, 1);
|
21
|
-
cal.add(Calendar.DATE, SUNDAY-cal.get(DAY_OF_WEEK)); //1日が属する週の日曜日の日付. ex)2019/5/1→2019/4/28
|
22
21
|
|
23
22
|
System.out.println();
|
24
23
|
System.out.println(year + "/" + (month+1) + (((java.util.GregorianCalendar)cal).isLeapYear(year)?"(うるう年)":"") );
|
@@ -26,6 +25,7 @@
|
|
26
25
|
System.out.println("日 月 火 水 木 金 土");
|
27
26
|
System.out.println("---------------------");
|
28
27
|
|
28
|
+
cal.add(Calendar.DATE, SUNDAY-cal.get(DAY_OF_WEEK)); //1日が属する週の日曜日の日付. ex)2019/5/1→2019/4/28
|
29
29
|
for (; cal.get(MONTH) <= month; cal.add(DATE, 1)) {
|
30
30
|
System.out.printf(cal.get(MONTH)<month?" ":"%2d ", cal.get(DATE));
|
31
31
|
if (cal.get(DAY_OF_WEEK) == SATURDAY) System.out.println();
|
1
Calendar 定数を import static 化
answer
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
package calendar;
|
5
5
|
import java.util.Calendar;
|
6
6
|
import java.util.Scanner;
|
7
|
+
import static java.util.Calendar.*;
|
7
8
|
|
8
9
|
public class Mycalendar {
|
9
10
|
public static void main(String[] args) {
|
@@ -17,7 +18,7 @@
|
|
17
18
|
cal.set(Calendar.YEAR, year);
|
18
19
|
cal.set(Calendar.MONTH, month);
|
19
20
|
cal.set(Calendar.DATE, 1);
|
20
|
-
cal.add(Calendar.DATE,
|
21
|
+
cal.add(Calendar.DATE, SUNDAY-cal.get(DAY_OF_WEEK)); //1日が属する週の日曜日の日付. ex)2019/5/1→2019/4/28
|
21
22
|
|
22
23
|
System.out.println();
|
23
24
|
System.out.println(year + "/" + (month+1) + (((java.util.GregorianCalendar)cal).isLeapYear(year)?"(うるう年)":"") );
|
@@ -25,9 +26,9 @@
|
|
25
26
|
System.out.println("日 月 火 水 木 金 土");
|
26
27
|
System.out.println("---------------------");
|
27
28
|
|
28
|
-
for (; cal.get(
|
29
|
+
for (; cal.get(MONTH) <= month; cal.add(DATE, 1)) {
|
29
|
-
System.out.printf(cal.get(
|
30
|
+
System.out.printf(cal.get(MONTH)<month?" ":"%2d ", cal.get(DATE));
|
30
|
-
if (cal.get(
|
31
|
+
if (cal.get(DAY_OF_WEEK) == SATURDAY) System.out.println();
|
31
32
|
}
|
32
33
|
}
|
33
34
|
}
|