日期:2014-05-20 浏览次数:20858 次
//这个测试类是得到某年某月一号星期几,从1990年一月一号开始算起的(1990年一月一号星期一)
import java.util.GregorianCalendar;
public class TestgetFirstDayOfMonth{
public static void main(String[] args)
{
int m=getFirstDay(2012,2); //这个是测试
System.out.println("m="+m);
}
public static int getFirstDay(int year,int month)
{
int totalDay=0,totalYearDay=0,totalMonthDay=0,yearDay=0,monthDay=0;
if(year<1900)
{
return(-1);
}
if((month<1)||(month>12))
{
return(-1);
}
if (year % 4 == 0 && !(year % 100 == 0) || year % 400 == 0) //判断是不是闰年,闰年加366,平年加365
{
yearDay=366;
}
else
{
yearDay=365;
}
for(int i=1900;i<year;i++)
{
totalYearDay = totalYearDay + yearDay;
}
for (int i = 1; i <= month; i++) {
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
monthDay = 31;
break;
case 2:
if (year % 4 == 0 && !(year % 100 == 0) || year % 400 == 0) {
monthDay = 29;
} else {
monthDay = 28;
}
break;
default:
monthDay = 30;
break;
}
if (i < month) {
totalMonthDay = totalMonthDay + monthDay;
}
}
for(int i=1;i<month;i++)
{
totalMonthDay = totalMonthDay + monthDay;
}
totalDay=totalYearDay+totalMonthDay;
return((totalDay+1)%7);
}
}
import java.util.GregorianCalendar;
public class TestgetFirstDayOfMonth{
public static void main(String[] args)
{
int m=getFirstDay(2012,2); //这个是测试
System.out.println("m="+m);
}
public static int getFirstDay(int year,int month)
{
int totalDay=0,totalYearDay=0,totalMonthDay=0,yearDay=0,monthDay=0;
if(year<1900)
{
return(-1);
}
if((month<1)||(month>12))
{
return(-1);
}
for(int i=1900;i<year;i++)
{
//判断闰年的代码应该放在这儿,而且应该是用i来判断的
if (i % 4 == 0 && !(i % 100 == 0) || i % 400 == 0) //判断是不是闰年,闰年加366,平年加365
{
yearDay=366;
}
else
{
yearDay=365;
}
totalYearDay = totalYearDay + yearDay;
}
for (int i = 1; i < month; i++) { //我把这里的等号去掉了
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
monthDay = 31;
break;
case 2:
if (year % 4 == 0 && !(year % 100 == 0) || year % 400 == 0) {
monthDay = 29;
} else {
monthDay = 28;
}
break;
default:
monthDay = 30;
break;
}
//if (i < month) { //这个判断多此一举
totalMonthDay = totalMonthDay + monthDay;
//}
}
/* for(int i=1;i<month;i++) //这些都不需要了
{
totalMonthDay = totalMonthDay + monthDay;
}*/
totalDay=totalYearDay+totalMonthDay;
return((totalDay+1)%7);
}
}