#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int year = 0;
int a = 0;
int b = 0;
int Y;
int F;
int ry;
int YH;
int FH;
int rz;
//
int a1, a2, a3, a4, a5, a6, a7, a8,a9,a10,a11,a12;
a1 = 0; a2 = 31; a3 = 31 + 29; a4 = 31 + 29 + 31; a5 = 31 + 29 + 31 + 30; a6 = 31 + 29 + 31 + 30 + 31;
a7 = 31 + 29 + 31 + 30 + 31 + 30; a8 = 31 + 29 + 31 + 30 + 31 + 30 + 31; a9 = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31;
a10 = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30; a11 = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31;
a12 = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30;
int sum;
//输入年份
printf("请输入年份:\n");
scanf(" %d", &year);
//在此输入月和日期
printf("请输入第几月:\n");
scanf(" %d", &a);
printf("请输入第几日:\n");
scanf(" %d", &b);
////判断该年月日是从公元元年开始的第几日
////计算1年1月1日到100年12月31日是多少天
// YH = 100 * 365 + 25 - 1;
////YH=146097
////计算1年1月1日到400年12月31日是多少天
// FH = 400*365+100-3;
////FH=146097
////判断是否是闰年
if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)))
{
// //计算闰年第几天
switch (a)
{
case 1:
sum = a1 + b;
printf("此日期是该年第%d天。\n",sum ); break;
case 2:
sum = a2 + b;
printf("此日期是该年第%d天。\n", sum); break;
case 3:
sum = a3 + b;
printf("此日期是该年第%d天。\n", sum); break;
case 4:
sum = a4 + b;
printf("此日期是该年第%d天。\n", sum); break;
case 5:
sum = a5 + b;
printf("此日期是该年第%d天。\n", sum); break;
case 6:
sum = a6 + b;
printf("此日期是该年第%d天。\n", sum); break;
case 7:
sum = a7 + b;
printf("此日期是该年第%d天。\n", sum); break;
case 8:
sum = a8 + b;
printf("此日期是该年第%d天。\n", sum); break;
case 9:
sum = a9 + b;
printf("此日期是该年第%d天。\n", sum); break;
case 10:
sum = a10 + b;
printf("此日期是该年第%d天。\n", sum); break;
case 11:
sum = a11 + b;
printf("此日期是该年第%d天。\n", sum); break;
case 12:
sum = a12 + b;
printf("此日期是该年第%d天。\n", sum); break;
default:break;
}
//计算1年1月1日到year年12月31日是多少天
ry = year * 365 + year / 4 - year / 100 + year / 400;
//输入月份和日分,求该日到元年一月一日的天数,闰年是366天
rz = ry - (366 - sum);
//判断星期几
switch (rz % 7 )
{
case 6:printf("周六\n"); break;
case 5:printf("周五\n"); break;
case 4:printf("周四\n"); break;
case 3:printf("周三\n"); break;
case 2:printf("周二\n"); break;
case 1:printf("周一\n"); break;
case 0:printf("周日。\n"); break;
default: break;
}
}
else {
//计算非闰年的第几天
switch (a)
{
case 1:
sum = a1 + b;
printf("此日期是该年第%d天。\n", sum); break;
case 2:
sum = a2 + b;
printf("此日期是该年第%d天。\n", sum); break;
case 3:
sum = a3 + b-1;
printf("此日期是该年第%d天。\n", sum); break;
case 4:
sum = a4 + b-1;
printf("此日期是该年第%d天。\n", sum); break;
case 5:
sum = a5 + b-1;
printf("此日期是该年第%d天。\n", sum); break;
case 6:
sum = a6 + b-1;
printf("此日期是该年第%d天。\n", sum); break;
case 7:
sum = a7 + b-1;
printf("此日期是该年第%d天。\n", sum); break;
case 8:
sum = a8 + b-1;
printf("此日期是该年第%d天。\n", sum); break;
case 9:
sum = a9 + b-1;
printf("此日期是该年第%d天。\n", sum); break;
case 10:
sum = a10 + b-1;
printf("此日期是该年第%d天。\n", sum); break;
case 11:
sum = a11 + b-1;
printf("此日期是该年第%d天。\n", sum); break;
case 12:
sum = a12 + b-1;
printf("此日期是该年第%d天。\n", sum); break;
default:break;
}
//计算1年1月1日到year年12月31日是多少天
ry = year * 365 + year / 4 - year / 100 + year / 400;
//输入月份和日分,求该日到元年一月一日的天数
rz = ry - (365 - sum);
//判断星期几
switch (rz % 7 )
{
case 6:printf("周六\n"); break;
case 5:printf("周五\n"); break;
case 4:printf("周四\n"); break;
case 3:printf("周三\n"); break;
case 2:printf("周二\n"); break;
case 1:printf("周一\n"); break;
case 0:printf("周日。\n"); break;
default: break;
}
}
return 0;
}
只用IF和SWITCH写出输入年月日判断星期几的程序
最新推荐文章于 2022-10-17 09:14:40 发布