计算输入的日期为星期几【原创小程序】
2007/08/25 22:56
/*
程序功能:计算输入的日期为星期几
作者:HungryAnt
日期:2007.08.25 晚
*/
/*查询 1970年1月1日 是星期几
查询方式
#include<time.h>
#include<stdio.h>
int main(){
struct tm t;
time_t h_t=0;
printf(ctime(&h_t));
getch();
}
得到结果 星期4
*/
#include<stdio.h>
int RunNian(int y){
if((y%100!=0 && y%4==0) || y%400==0)
return 1;
else return 0;
}
int main(){
int iy,im,id;
int y,m,d,dsum=0,rn,day;
char *dd;
printf("请输入日期/n年 月 日/(请以空格键间隔!!!/):/n");
scanf("%d%d%d",&iy,&im,&id);
if(iy>1970 || (iy==1970 && (im>1 || (im==1 && id>1)))){/*1970年1月1日 之后*/
for(y=1970;y<iy;y++){
rn=RunNian(y);
dsum+=365+rn;
}
for(m=1;m<im;m++){
switch(m){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:dsum+=31;break;
case 2:dsum+=28+rn;break;
case 4:
case 6:
case 9:
case 11:dsum+=30;break;
}
}
dsum+=id-1;
day=(4+dsum)%7;/*1970年1月1日 星期4*/
}
else if(iy==1970 && im==1 &&id==1)day=4;/*1970年1月1日*/
else{/*1970年1月1日 之前*/
for(y=iy+1;y<1970;y++){
rn=RunNian(y);
dsum+=365+rn;
}
for(m=im;m<=12;m++){
switch(m){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:dsum+=31;break;
case 2:dsum+=28+rn;break;
case 4:
case 6:
case 9:
case 11:dsum+=30;break;
}
}
dsum-=id-1;
day=4-(dsum)%7;
if(day<0)day+=7;
}
switch(day){
case 0:dd="日";break;
case 1:dd="一";break;
case 2:dd="二";break;
case 3:dd="三";break;
case 4:dd="四";break;
case 5:dd="五";break;
case 6:dd="六";break;
}
printf("%d年/%d月/%d日 是 星期%s",iy,im,id,dd);
getch();
}
程序功能:计算输入的日期为星期几
作者:HungryAnt
日期:2007.08.25 晚
*/
/*查询 1970年1月1日 是星期几
查询方式
#include<time.h>
#include<stdio.h>
int main(){
struct tm t;
time_t h_t=0;
printf(ctime(&h_t));
getch();
}
得到结果 星期4
*/
#include<stdio.h>
int RunNian(int y){
if((y%100!=0 && y%4==0) || y%400==0)
return 1;
else return 0;
}
int main(){
int iy,im,id;
int y,m,d,dsum=0,rn,day;
char *dd;
printf("请输入日期/n年 月 日/(请以空格键间隔!!!/):/n");
scanf("%d%d%d",&iy,&im,&id);
if(iy>1970 || (iy==1970 && (im>1 || (im==1 && id>1)))){/*1970年1月1日 之后*/
for(y=1970;y<iy;y++){
rn=RunNian(y);
dsum+=365+rn;
}
for(m=1;m<im;m++){
switch(m){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:dsum+=31;break;
case 2:dsum+=28+rn;break;
case 4:
case 6:
case 9:
case 11:dsum+=30;break;
}
}
dsum+=id-1;
day=(4+dsum)%7;/*1970年1月1日 星期4*/
}
else if(iy==1970 && im==1 &&id==1)day=4;/*1970年1月1日*/
else{/*1970年1月1日 之前*/
for(y=iy+1;y<1970;y++){
rn=RunNian(y);
dsum+=365+rn;
}
for(m=im;m<=12;m++){
switch(m){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:dsum+=31;break;
case 2:dsum+=28+rn;break;
case 4:
case 6:
case 9:
case 11:dsum+=30;break;
}
}
dsum-=id-1;
day=4-(dsum)%7;
if(day<0)day+=7;
}
switch(day){
case 0:dd="日";break;
case 1:dd="一";break;
case 2:dd="二";break;
case 3:dd="三";break;
case 4:dd="四";break;
case 5:dd="五";break;
case 6:dd="六";break;
}
printf("%d年/%d月/%d日 是 星期%s",iy,im,id,dd);
getch();
}