整個20世紀(1901年1月1日至2000年12月31日之間),一共有多少個星期一?
(不要告訴我你不知道今天是星期幾)
注意:需要提交的只是一個整數,不要填寫任何多餘的內容或說明文字。
結果:5217
解析:判斷1901年1月1日到2000年12月31的每一天是星期幾,如果是星期一則統計的個數+1。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class 星期一2
{
public static boolean Method(int y,int m,int d) throws ParseException
{
String s = y+"/"+m+"/"+d; //轉換成yyyy/MM/dd的格式
SimpleDateFormat simple = new SimpleDateFormat("yyyy/MM/dd");
Date date = simple.parse(s); //把日期轉換爲Date類型
int y2 = date.getYear()+1900; //轉換爲Date之後的年
int m2 = date.getMonth()+1; //轉換爲Date之後的月
int d2 = date.getDate(); //轉化爲Date之後的日
if(y==y2&&m==m2&&d==d2) //如果和原日期中的年月日都相同,說明該日期是合法的
{
return true;
}
return false;
}
public static void main(String[] args) throws ParseException
{
int cnt = 0;
Calendar c1 = Calendar.getInstance();
for(int i=1901;i<=2000;++i)
{
for(int j=1;j<=12;++j)
{
for(int k=1;k<=31;++k)
{
boolean flag = Method(i,j,k); //檢驗日期是否合法
if(flag) // 合法情況
{
c1.set(i,j-1,k); // 在設置時間的時候需要月份-1,因爲計算機中月份是0-11
if(c1.get(Calendar.DAY_OF_WEEK)==2)//計算機中星期天是星期一,所以2代表現實中的星期一
{
cnt++;
}
}
}
}
}
System.out.println(cnt);
}
}
運行結果:
5217