您当前的位置:首页 > 计算机 > 编程开发 > C语言

C语言比较两个日期的早晚

时间:10-08来源:作者:点击数:

这是一个C语言结构体示例程序:设计一个函数,用来比较输入的两个日期的迟早,日期定义为结构体类型。

日期包含年月日三部分,因而我们可以声明一个包含 year、month、day 三个成员的结构体 date,用来表示日期:

struct date{
    int year;
    int month;
    int day;
};

用于比较日期 A 和 B 迟早的函数定义为:

int compare(struct date A,struct date B)

当函数返回值为 1 时表示日期 A 早于日期 B,返回值为 0 时表示日期 A 迟于或等于日期 B。显然不能对两个结构体对象 A、B 直接进行比较,而要按照其成员的具体时间意义逐个进行比较处理。如果 A 的年份成员 A.year 小于 B 的年份成员 B.year,则日期 A 比较早,函数返回 1;当 A、B 的年份成员 year 相同时,则比较其月份成员 month;当年份成员 year和月份成员 month 都相同时,则比较日期成员 day。

代码清单 1:按(1970-6-1)格式输入两个日期,比较迟早

#include <stdio.h>
#include <stdlib.h>
struct date{              //声明结构体date用于表示日期
    int year;
    int month;
    int day;
};
/*--自定义函数:比较两个日期A和B,A早则返回1,否则返回0--*/
int compare(struct date A,struct date B){
    if(A.year<B.year)     
        return 1;
    if(A.year==B.year && A.month<B.month)
        return 1;
    if(A.year==B.year && A.month==B.month && A.day<B.day)
        return 1;
    return 0;
}
/*--主函数--*/
int main()
{
    struct date x,y;         //定义两个date结构体对象x和y
    printf("输入日期X(yyyy-mm-dd):");
    scanf("%d-%d-%d",&x.year,&x.month,&x.day);
    printf("输入日期Y(yyyy-mm-dd):");
    scanf("%d-%d-%d",&y.year,&y.month,&y.day);
    if(compare(x,y))
        printf("日期X比较早!");
    else
        printf("日期Y比较早!");
    system("pause");
    return 0;
}

运行结果为:

输入日期X(yyyy-mm-dd):2019-08-14
输入日期Y(yyyy-mm-dd):1996-06-02
日期Y比较早!

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门