键盘输入一个1~366之间的值,包括1和366基于数组,将其转换为年、月、日、星期,并输出到控制台窗口。

 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");
}
 

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值