2020年有366 天,将2020年1月1日作为计数起点,即计数1,2020年12月31日作为计数终点,即计数366.计数1代表“2020年1月1日-星期三”,计数10代表“2020年1月10日-星期五”。参考本章实验,通过键盘输入一个1~366之间的值,包括1和366基于数组,将其转换为年、月、日、星期,并输出到控制台窗口。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int tick = 0;
short year, month, day, week;
printf("Please input 2 ticks between 1-366\n");
scanf_s("%d", &tick);
year = 2020;
if (1 <= tick && tick <= 31) //1-31,1月31天
{
month = 1;
day = tick;
}
else if (32 <= tick && tick <= 60) //32-60,2月29天
{
month = 2;
day = tick - 31;
}
else if (61 <= tick && tick <= 92)//61-92,3月31天
{
month = 3;
day = tick - 31 - 29;
}
else if (93 <= tick && tick <= 113)//93-113,4月30天
{
month = 4;
day = tick - 31 - 29 - 31;
}
else if (114 <= tick && tick <= 145)//114-145,5月31天
{
month = 5;
day = tick - 31 - 29 - 31 - 30;
}
else if (146 <= tick && tick <= 176)//146-176,6月30天
{
month = 6;
day = tick - 31 - 29 - 31 - 30 - 31;
}
else if (177 <= tick && tick <= 208)//177-208,7月31天
{
month = 7;
day = tick - 31 - 29 - 31 - 30 - 31 - 30;
}
else if (209 <= tick && tick <= 240)//209-240,8月31天
{
month = 8;
day = tick - 31 - 29 - 31 - 30 - 31 - 30 - 31;
}
else if (241 <= tick && tick <= 271)//241-271,9月30天
{
month = 9;
day = tick - 31 - 29 - 31 - 30 - 31 - 30 - 31 - 31;
}
else if (272 <= tick && tick <= 303)//272-303,10月31天
{
month = 10;
day = tick - 31 - 29 - 31 - 30 - 31 - 30 - 31 - 31 - 30;
}
else if (304 <= tick && tick <= 334)//304-334,11月30天
{
month = 11;
day = tick - 31 - 29 - 31 - 30 - 31 - 30 - 31 - 31 - 30 - 31;
}
else if (335 <= tick && tick <= 366)//335-366,12月31 天
{
month = 12;
day = tick - 31 - 29 - 31 - 30 - 31 - 30 - 31 - 31 - 30 - 31 - 30;
}
else
{
printf("error!!");
return 0;
}
week = (tick + 2) % 7; //0代表星期日,+4是因为2021/1/1是星期三
if (week == 0)
{
printf("Curent time:%04d年%02d月%02d日-星期日", year, month, day);
}
if (week == 1)
{
printf("Curent time:%04d年%02d月%02d日-星期一", year, month, day);
}
if (week == 2)
{
printf("Curent time:%04d年%02d月%02d日-星期二", year, month, day);
}
if (week == 3)
{
printf("Curent time:%04d年%02d月%02d日-星期三", year, month, day);
}
if (week == 4)
{
printf("Curent time:%04d年%02d月%02d日-星期四", year, month, day);
}
if (week == 5)
{
printf("Curent time:%04d年%02d月%02d日-星期五", year, month, day);
}
if (week == 6)
{
printf("Curent time:%04d年%02d月%02d日-星期六", year, month, day);
}
printf("\n");
system("pause");
}