C语言程序,输入年月日算出当天星期几先做一个函数 , 计算1900年1月1日到该天的天数,然后用膜除求出星期几并输出 。
具体代码如下:
#include stdio.h
#include stdlib.h
int Day(int y,int m,int d);
int main(int argc, char *argv[]) {
int i;//循环变量
int year,month,day;//读取用户输入的年月日
int days;//储存从1900-1-1到该天的天数
int week=0;//储存求余后的星期
//字符串组合输出星期
char b[]={"星期"};
char c[7][4]={"日","一","二","三","四","五","六"};
loop:printf("请输入年 月 日:(空格分隔)\n");
scanf(" %d%d%d",year,month,day);
days=Day(year,month,day);
//增强程序的健壮性
if(days==-1)
{
printf("输入格式有误,");
fflush(stdin);//防止用户输入字母等其他非数字字符
goto loop;
}
else
{
week=days%7;//用求余计算星期几
printf("%d年%d月%d日是%s%s\n",year,month,day,b,c[week]);
}
system("pause");
return 0;
}
//函数功能:输入年月日,输出1900-1-1到该天的天数,-1位输入不合法
int Day(int y,int m,int d)
{
int i;
int r=0;//储存1900到该天的闰年个数
int a[]={31,28,31,30,31,30,31,31,30,31,30}; //m给每出月的天数
if(y=1900m0m13d0d32)
{
for(i=1900;i=y;i++)//计算闰年的个数
{
if(i%400==0||i%100!=0i%4==0)
r++;
}
for(i=0;im-1;i++)//统计当年1月1日到当月的天数
{
d+=a[i];
}
if((y%400==0||y%100!=0y%4==0)m3)//如果当年是闰年但不到二月就不能算进去
r--;
return 365*(y-1900)+r+d;
}
else
return -1;
}
c语言计算日期为星期几#includestdio.h
int isRn(int num){
if((num%4==0num%400!=0)||num%400==0){
return 1;
}else{
return 0;
}
int monthDay(int year,int month){
if(month==1||month==3||month==5
||month==7||month==8||month==10
【c语言获得星期几的函数 c语言输入星期几,求过几天后星期几的程序】||month==12){
return 31;
}else if(month==4||month==6||month==9
||month==11)
{
return 30;
}else if(month==2){
if(isRn(int num)==1){
return 29;
}else{
return 28;
}
}
}
void main(){
int sum=0,year,month,day,i,temp,j;
printf("请输入年份:");
scanf("%d",year);
while(year1900){
printf("年份必须从1900年开始c语言获得星期几的函数!\n\n");
printf("请输入年份:");
scanf("%d",year);
}
printf("请输入月份:");
scanf("%d",month);
while(month1||month12){
printf("月份必须是1到12之间!\n\n");
printf("请输入月份:");
scanf("%d",month);
}
printf("请输入日:");
scanf("%d",day);
while(daymonthDay(year,month)||day1){
printf("日必须从1开始c语言获得星期几的函数 , 并且不能大于该月c语言获得星期几的函数的天数!\n\n");
printf("请输入日:");
scanf("%d",day);
}
temp=month;
temp-=1;
for(i=1900;i=year;i++){
for(j=1;j=12;j++){
if(i==yearj==temp){
break;
}
sum+= monthDay(year,j);
}
}
sum+=day;
printf("%d年%d月%d日,是星期",year,month,day)
if(sum%7==0){
printf("日 。\n");
}else if(sum%7==1){
printf("一 。\n");
}else if(sum%7==2){
printf("二 。\n");
}else if(sum%7==3){
printf("三 。\n");
}else if(sum%7==4){
printf("四 。\n");
}else if(sum%7==5){
printf("五 。\n");
}else if(sum%7==2){
printf("六 。\n");
}
推荐阅读
- feed直播教程,feed直播什么意思
- 微信公众号怎么创建门票,微信公众号怎么创建门票链接
- 中班游戏活动教案益智,中班益智游戏活动目标
- 推荐开放竞速游戏,推荐开放竞速游戏排行榜
- vb.net的报表功能 vb报表设计过程
- 包含postgresqlsqlshell的词条
- 恋爱季节游戏1080P,恋爱季节游戏攻略
- js打印css样式表,css 打印样式
- java文件乱码实现代码 java文件中文乱码