⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 计算是这年的的第几天(判断闰年).cpp

📁 计算是这年的的第几天(判断闰年)能判断月份是否输入错误,如果是闰年还能计算2月份的日期输入是否过界!算法还算不错!
💻 CPP
字号:
#include<stdio.h>
#include<conio.h>
void main()
{
    int y,m,d,no;
    c:printf("请输入年-月-日:");
    scanf("%d-%d-%d",&y,&m,&d);
    {
    if (y%4==0&&y%100!=0||y%400==0)                                             /*判断是否是闰年 符合则为闰年*/
    {
        if (m>0&&m<=12)
        {                                                                       /*对月份的输入进行判断*/
            if (m==1&&d>31||m==2&&d>29||m==3&&d>31||m==4&&d>30||m==5&&d>31||m==6&&d>30||m==7&&d>31||m==8&&d>31||m==9&&d>30||m==10&&d>31||m==11&&d>30||m==12&&d>31)   /*对闰年日期的输入进行判断  符合条件则为错误*/
    printf("输入日期错误\n");
            else
            goto loop;
        }
        else
        printf ("输入月份错误-\n");goto c;
        getche();
    }
    else
    {
        if (m>0&&m<=12)                                                         /*对月份的输入进行判断*/
            {
            if (m==1&&d>31||m==2&&d>28||m==3&&d>31||m==4&&d>30||m==5&&d>31||m==6&&d>30||m==7&&d>31||m==8&&d>31||m==9&&d>30||m==10&&d>31||m==11&&d>30||m==12&&d>31)  /*对 不是 闰年日期的输入进行判断  符合条件则为错误*/
    printf("输入日期错误\n");
            else
            goto loop;                                                          /*跳转到loop:*/
            }
        else
        printf ("输入月份错误\n");goto c;

    }
}
loop: {
    printf("计算中.....\n");

 }
    {
if (m<3)
{
    no=(m-1)*31+d;                                                              /*对三月份以下的进行计算*/
    printf("%d-%d-%d 是这一年的第%d天\n",y,m,d,no);
}
    else
    {
   switch(m)
        {
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 10:
    case 12: no=(m-1)*30+d-2+m/2;  break;
    case 9:
    case 11: no=(m-1)*30+d-1+m/2;  break;
    default:;

        }
        if (y%4==0 &&y%100!=0 ||y%400==0)                                       /*判断是否是闰年 符合则为闰年*/
        {
        printf("%d-%d-%d 是这一年的第%d天\n",y,m,d,no+1);                         /*为闰年则加no的值加一*/
        }
        else
        {
         printf("%d-%d-%d 是这一年的第%d天\n",y,m,d,no);                          /*为平年则直接导出no的值*/
        }
    }
   }
        getche();                                                              /* 从控制台获取一个字符,回显  这个很重要 不加的话不然下面还会继续运行*/
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -