判断输入的年月日是否合理

来源:互联网 发布:centos软件安装卸载 编辑:程序博客网 时间:2024/05/14 09:27

#include <stdio.h>

#include <stdlib.h>

void main( ) {

    int mon[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

    int year, month, day, sum, leap, i;

    printf("输入年月日(例如:2013-4-5):");

    scanf("%d-%d-%d", &year, &month, &day);

    if(year < 1 || month < 1 || month > 12) {

        printf("不合理的年或月!\n");

        return;

    }

    leap = (year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0));

    if((day < 1 || day > mon[month]) && ((month != 2) || ((month == 2) && (day > mon[month] + leap)))) {

        printf("不合理的日期\n");

        return;

    }

    for(sum = 0, i = 1; i < month; i++)

        sum += mon[i];

    sum += day + leap;

    printf("%d-%d-%d是%d年的第%d天!", year, month, day, year, sum);

    system("pause");

}


0 0
原创粉丝点击