C语言比较两个日期的早晚
这是一个C语言结构体示例程序:设计一个函数,用来比较输入的两个日期的迟早,日期定义为结构体类型。
日期包含年月日三部分,因而我们可以声明一个包含 year、month、day 三个成员的结构体 date,用来表示日期:
用于比较日期 A 和 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)格式输入两个日期,比较迟早
运行结果为:
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
日期包含年月日三部分,因而我们可以声明一个包含 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比较早!
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。