Intsum (int year,int month,int day)/*計算壹年中的某壹天*/
{ int day_sum=0,I;
int day_tab[13]={0,31,28,31,30,31,30,31,30,31,30,31;
for(I = 1;我& lt月份;i++)
day _ sum+= day _ tab[I];
day _ sum+=日;
if((year % 4 = = 0 & amp;& amp年份%100!=0) ||(年份%400==0))
if(month & gt;2)day _ sum+= 1;/*-閏年的二月比正常年份多壹天-*/
返回day _ sum
}
Int days(int y2,int m2,int d2) /*計算日期差*/
{ int flag,I;
int day_sub,year _ sub
int y1=2006,m1=4,d 1 = 25;
/*計算兩年之間的天數*/
year _ sub = y2-y 1;
year _ sub * = 365/*先平均年處理*/
for(I = y 1;我& lty2;I++) /*重新處理閏年:如果兩年之間有幾個閏年,需要加幾天*/
if((I % 4 = = 0 & amp;& amp我%100!=0) || i%400==0)
year _ su b++;
/*計算兩個日期之間的總天數*/
day_sub=sum(y2,m2,d2)-sum(y1,m1,d 1)+year _ sub;
return(day _ sub % 7+7)% 7;/*加7用於處理負數*/
}
主()
{
int年、月、日;
printf(" \ n請輸入今天的日期(年、月、日):\ n ");
scanf("%d,%d,%d ",& amp年份& amp月份& amp天);
printf(" \ n day is ");
Switch(days(year,month,day)) /*根據日期差的余數判斷星期幾*/
{案例0:printf("星期二!");打破;
案例1:printf("星期三!");打破;
案例二:printf("星期四!");打破;
案例三:printf("星期五!");打破;
案例四:printf("星期六!");打破;
案例五:printf("Sunday!");打破;
案例六:printf("星期壹!");打破;
}
getche();}
來源:/question/28951745.html?fr=qrl
程序2
結構日期{
int年;
int月;
int日;
}日期;
char monthday[]={31,28,31,30,31,30,31,30,31,30,31 };
int計數()
{
int I = 0;
int d;
int yy
d = 0;
yy =日期.年份;
for(I = 1;我& lt日期.月份;i++)
d+= month day[I-1];
d+= date . day;
if(((YY % 4 = = 0 & amp;& ampyy%100!= 0)| | YY % 400 = = 0)& amp;& ampdate.month & gt2)d++;
返回d;
}
int main()
{
int N;
printf("輸入日期(年-月-日):");
scanf("%d-%d-%d ",& amp日期、年份和時間。日期、月份和時間。date . day);
printf("%d ",Count());
getchar();
getchar();
getchar();
}
來源:/question/28950377.html