用C语言实现: 输入日期然后计算两天后的日期

来源:互联网 发布:星海乐器知乎 编辑:程序博客网 时间:2024/06/06 01:18

题目要求: 输入日期 然后计算两天后的日期

#include<stdio.h>int main(){    while(true){        int a[3];        int i;        printf("============================\n");        printf("请输入月 日 年的数字\n");        printf("例如这样的格式\n11 3 2017\n");        printf("\n");        for(i=0;i<3;i++){            scanf("%d",&a[i]);        }        //对月份进行初步判断         if(a[0]<0||a[0]>12){            printf("月份格式不正确\n");            continue ;         }        //对日份进行初步判断         if(a[1]<1&&a[1>31]){            printf("日份格式不正确\n");            continue ;         }        //对大月进行判断         if(a[0]==1||a[0]==3||a[0]==5||a[0]==7||a[0]==8||a[0]==10){            if(a[1]==31){                a[1]=2;                a[0]++;            }else if(a[1]==30){                a[1]=1;                a[0]++;            }else{                a[1]=a[1]+2;            }        }        //对小月进行判断         else if(a[0]==4||a[0]==6||a[0]==9||a[0]==11){            if(a[1]==31) {                printf("日份格式不正确\n");                continue ;             }else if(a[1]==30){                a[1]=2;                a[0]++;            }else if(a[1]==29){                a[1]=1;                a[0]++;            }else{                a[1]=a[1]+2;            }        }        else if(a[0]==2){            //对2月进行判读             if((a[2]/4==0&&a[2]/100!=0)||(a[2]/400==0)){                    if(a[1]==29){                        a[1]=2;                        a[0]++;                    }else if(a[1]==28){                        a[1]=1;                        a[0]++;                    }else{                        a[1]=a[1]+2;                    }                }else{                    if(a[1]>=29){                        printf("不是瑞年 日期 输入有误\n");                        continue ;                    }                    else if(a[1]==28){                        a[1]=1;                        a[0]++;                    }else{                        a[1]=a[1]+2;                    }                }        }else{            //对12月份单独判断 如果超过界限年份加1             if(a[1]==31){                a[1]=2;                a[0]=1;                a[2]++;            }else if(a[1]==30){                a[1]=1;                a[0]=1;                a[2]++;            }else{                a[1]=a[1]+2;            }        }        printf("\n");        printf("两天后的日期是\n");        printf("\n");        printf("%d/%d/%d\n",a[0],a[1],a[2]);        printf("\n");    }}

输出格式如下

============================请输入月 日 年的数字例如这样的格式11 3 201711 31 2017日份格式不正确============================请输入月 日 年的数字例如这样的格式11 3 201711 30 2017两天后的日期是12/2/2017============================请输入月 日 年的数字例如这样的格式11 3 2017

这个主要一个是对瑞年的判断 和 大月小月的 月末的判断(月份加一)

以及和对12月的月末进行判断(年份会加一 月份归一)

阅读全文
1 0
原创粉丝点击