题目描述
1949 年的国庆节( 10 月 1 日)是星期六。
今年(2012)的国庆节是星期一。
那么,从建国到现在,有几次国庆节正好是星期日呢?
不要求写出具体是哪些年,只要一个数目!
解题思路
本题用到 Calendar 类,具体方法如下:
常量字段 | 说明 |
---|---|
Calendar.ERA | ERA表示纪元,只能为0或1。0表示BC(“before Christ”,即公元前);1表示AD(拉丁语“Anno Domini”,即公元)。 |
Calendar.YEAR | 表示年份 |
Calendar.MONTH | 表示月份,需要加1,因为0表示1月,1表示2月,以此类推 |
Calendar.HOUR | 小时(12小时制) |
Calendar.HOUR_OF_DAY | 一天中第几个小时(24小时制) |
Calendar.MINUTE | 分钟 |
Calendar.SECOND | 秒 |
Calendar.MILLISECOND | 毫秒 |
Calendar.DAY_OF_YEAR | 一年中第几天 |
DAY_OF_MONTH | 一月中第几天 |
DAY_OF_WEEK | 一周中第几天,注意,周日是1,周一是2,... |
Calendar.DATE | 一月中第几天,同DAY_OF_MONTH的值是一样的 |
Calendar.DAY_OF_WEEK_IN_MONTH | 当月内一周中的某天的序号 |
Calendar.WEEK_OF_YEAR | 一年中的星期数,即本年中第几个星期 |
Calendar.WEEK_OF_MONTH | 当前月中的星期数,即本月中第几个星期 |
Calendar.DAY_OF_WEEK_IN_MONTH | 当前月中的第几个星期 |
Calendar.AM_PM | AM_PM是在中午之前还是在中午之后,在中午12点之前返回0,在中午12点(包括12点)之后返回1 |
Calendar.JANUARY | 1月 |
Calendar.FEBRUARY | 2月 |
Calendar.MARCH | 3月 |
Calendar.APRIL | 4月 |
Calendar.MAY | 5月 |
Calendar.JUNE | 6月 |
Calendar.JULY | 7月 |
Calendar.AUGUST | 8月 |
Calendar.SEPTEMBER | 9月 |
Calendar.OCTOBER | 10月 |
Calendar.NOVEMBER | 11月 |
Calendar.DECEMBER | 12月 |
解题代码
import java.util.Scanner;
import java.util.Calendar;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
int count = 0;
for(int i = 1949; i <= 2012;i++) {
// 使用Calendar.getInstance()获取当前的时间
Calendar calendar = Calendar.getInstance();
// 设置指定的时间
calendar.set(i, 10, 1);
if(calendar.get(Calendar.DAY_OF_WEEK)==1) {
//System.out.println(i);
count++;
}
}
System.out.println(count);
}
}