class Dateweek
{
public static boolean ifleap(int theyear)//是否是闰年
{
boolean leap=false;
leap = (theyear%400==0)| (theyear%100!=0) & (theyear%4==0);
return leap;
}
public static int daybeforyear(int y,int m ,int d)
{
int daybefor=0;
for(int j=1;j<=m-1;j++)
{
switch (j)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
daybefor=daybefor+31;
break;
case 4:
case 6:
case 9:
case 11:
daybefor=daybefor+30;
break;
case 2:
if(ifleap(y))
daybefor=daybefor+29;
else
daybefor=daybefor+28;
break;
}
}
daybefor=daybefor+d;
return daybefor-1;
}
public static int dayafteryear(int y1,int m1 ,int d1)
{
int dayafter=0;
switch (m1)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
dayafter=31-d1;
break;
case 4:
case 6:
case 9:
case 11:
dayafter=30-d1;
break;
case 2:
if(ifleap(y1))
dayafter=29-d1;
else
dayafter=28-d1;
break;
}
for(int k=m1+1;k<=12;k++)
{
switch (k)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
dayafter=dayafter+31;
break;
case 4:
case 6:
case 9:
case 11:
dayafter=dayafter+30;
break;
case 2:
if(ifleap(y1))
dayafter=dayafter+29;
else
dayafter=dayafter+28;
break;
}
}
return dayafter;
}
public static int daysbtmon(int y2,int tm1,int td1,int gm1,int gd1)
{
int daysbtm=0;
if(tm1==gm1)
daysbtm=gd1-td1;
else if(gm1<tm1)
{
switch (gm1)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
daysbtm=31-gd1;
break;
case 4:
case 6:
case 9:
case 11:
daysbtm=30-gd1;
break;
case 2:
if(ifleap(y2))
daysbtm=29-gd1;
else
daysbtm=28-gd1;
break;
}
for(int k1=gm1+1;k1<tm1;k1++)
{
switch (k1)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
daysbtm=daysbtm+31;
break;
case 4:
case 6:
case 9:
case 11:
daysbtm=daysbtm+30;
break;
case 2:
if(ifleap(y2))
daysbtm=daysbtm+29;
else
daysbtm=daysbtm+28;
break;
}
}
daysbtm=daysbtm+td1;
daysbtm=-daysbtm;
}
else
{
switch (tm1)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
daysbtm=31-td1;
break;
case 4:
case 6:
case 9:
case 11:
daysbtm=30-td1;
break;
case 2:
if(ifleap(y2))
daysbtm=29-td1;
else
daysbtm=28-td1;
break;
}
for(int k1=tm1+1;k1<gm1;k1++)
{
switch (k1)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
daysbtm=daysbtm+31;
break;
case 4:
case 6:
case 9:
case 11:
daysbtm=daysbtm+30;
break;
case 2:
if(ifleap(y2))
daysbtm=daysbtm+29;
else
daysbtm=daysbtm+28;
break;
}
}
daysbtm=daysbtm+gd1;
}
return daysbtm;
}
public static int days(int ty,int tm,int td,int gy,int gm,int gd)
{
int days=0;
if(gy<ty)
{
days=dayafteryear(gy,gm,gd);
for(int i1=gy+1;i1<ty;i1++)
{
if(ifleap(i1))
days=days+366;
else
days=days+365;
}
days=days+daybeforyear(ty,tm,td);
days=-days-1;
}
else if(gy>ty)
{
days=dayafteryear(ty,tm,td);
for(int i1=ty+1;i1<gy;i1++)
{
if(ifleap(i1))
days=days+366;
else
days=days+365;
}
days=days+daybeforyear(gy,gm,gd);
days=days+1;
}
else
{
days=daysbtmon(ty,tm,td,gm,gd);
}
return days;
}
public static void main(String[] args)
{
int year=2002,month=6,day=21,week=0;
int todayyear=2018,todaymonth=9,todayday=25,todayweek=1;
int dayvalue=(days(2018,9,24,2018,9,30));
System.out.println(dayvalue);
if (dayvalue>0)
week=(todayweek+dayvalue)%7;
if (dayvalue<0)
week=(todayweek+dayvalue)%7+7;
System.out.println(week);
}
}
下面的网站可以运行代码
https://tool.lu/coderunner/