public static long firstDayOfYear(int y)
{
long n=1;
// n=y*365; // 这句让我很费解....万一输入的年份是闰年怎么办?
for(int i=1;i
if(isLeapYear(i)) n+=2;
else n+=1; //闰年和非闰年的区别就是一个整除7余1 一个整除7于2
}
return n%=7;
}
/***判断是不是闰年*/
public static boolean isLeapYear(int y)
{
return ((y%4==0 && y %100!=0) || y%400==0);
}
public static void main(String[] args) {
String test="2013";
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR,Integer.parseInt(test));
cal.set(Calendar.MONTH,0);
cal.set(Calendar.DAY_OF_MONTH, 1);
System.out.println(new SimpleDateFormat("yyyyMMdd").format(cal.getTime()));
System.out.println(cal.get(Calendar.DAY_OF_WEEK));
}
用这个工具类,其他一切都不用你操心 ,你只要保证构建的时间是对的,然后返回的常量值和你的一样,就行了
真心不用这么麻烦...
SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat dateFm = new SimpleDateFormat("EEEE");
Date date = formatDate.parse("2013-01-01"); //字符串转日期
System.out.println( dateFm.format(date) ); //输出星期几
n=(y-1900)*365+1;
n=(y-1900)*365;
y需要减去1900