你先取某一年的第一天为起点。比如2012年第一天是星期日。
在判断这年是否是闰年,(2012年是闰年):
闰年的判断函数:
boolean isLeapYear( int year )
{
return (0==year%4) || (0==year%100 && 0==year%400 );
}
若是闰年,该年有366天,则星期数(如果7代表星期天)加减366%7后模7;
若是平年,该年有365天,则星期数加减365%7模7。
如果是算未来(对2012来说)则加(一年的天数)%7后模7,反之则减(一年的天数)%7后模7。
比如2013年第一天是星期 [ 7+(366)%7]%7;2011年第一天是星期 [7-(365)%7]%7;
public static long firstDayOfYear(int y)
{
long n=1;
// n=y365; // 这句让我很费解万一输入的年份是闰年怎么办
for(int i=1;i<y;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);
}
以上就是关于java中如何求出某一年第一天是星期几全部的内容,包括:java中如何求出某一年第一天是星期几、关于计算出一年的第一天是星期几、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)