任务:
程序员节在一年中的第 255 天庆祝(1 月 1 日被认为是第 0 天)。需要编写一个程序来确定给定年份的程序员节所在的日期(公历的月份和日期)。
日期必须以DD/MM/YYYY格式显示,其中 DD 是数字,MM 是月份的数字(01 是一月,02 是二月),YYYY 是十进制的年份
并输入一个从 1 到 9999 的整数,即我们时代的年份。
这是代码:
Scanner in = new Scanner(System.in);
int YEAR = in.nextInt();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Calendar gCal = new GregorianCalendar(YEAR, 0, 0);
gCal.add(Calendar.DAY_OF_YEAR, 256);
String dayP = sdf.format(gCal.getTime());
System.out.println(dayP);
我无法理解这个问题。在编译器中,一切都按我的需要进行,在闰年是 09/12/2000,在其他年份是 09/13/2100。
但是该站点不接受此代码并且没有通过第 6 次测试,我不明白没有读取哪些数据。日历和SDF可能有问题?只是对他们有一点经验,我就利用了它。
GregorianCalendar 将仅默认为1582 年之后的公历。
您可以使用setGregorianChange方法和setCalendar方法来更改行为: