2025年3月31日 星期一 乙巳(蛇)年 正月初一 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > C语言

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

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

这是一个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比较早!

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