C++如何为两组日期输入分别定义整体变量并比较大小
实现代码
#include <iostream> using namespace std; // 自定义日期结构体,将年月日封装为一个整体类型 struct Date { int day; int month; int year; }; int main() { // 声明两组日期的整体变量 Date date1, date2; char split_char; // 录入第一组日期,支持直接输入DD/MM/YYYY格式 cout << "输入第一组日期(格式DD/MM/YYYY):"; cin >> date1.day >> split_char >> date1.month >> split_char >> date1.year; // 录入第二组日期 cout << "输入第二组日期(格式DD/MM/YYYY):"; cin >> date2.day >> split_char >> date2.month >> split_char >> date2.year; bool date1_is_greater = false; bool is_equal = false; // 日期比较逻辑:优先比年→再比月→最后比日 if (date1.year > date2.year) { date1_is_greater = true; } else if (date1.year < date2.year) { date1_is_greater = false; } else { if (date1.month > date2.month) { date1_is_greater = true; } else if (date1.month < date2.month) { date1_is_greater = false; } else { if (date1.day > date2.day) { date1_is_greater = true; } else if (date1.day < date2.day) { date1_is_greater = false; } else { is_equal = true; } } } // 按需求输出结果 if (is_equal) { cout << "Both are equal" << endl; } else { if (date1_is_greater) { cout << "Date " << date1.day << "/" << date1.month << "/" << date1.year << " is greater" << endl; } else { cout << "Date " << date2.day << "/" << date2.month << "/" << date2.year << " is greater" << endl; } } return 0; }
关键说明
- 通过
struct Date自定义复合类型,实现了用一个变量存储整组日期的需求,后续扩展校验、计算功能也更方便 - 如果你还是想分开输入日、月、年,只需要把输入部分改回你原代码的分次输入写法即可,核心比较逻辑不需要改动
- 代码内置了对
DD/MM/YYYY带斜杠格式的输入支持,不需要用户分次输入三个值,适配你提到的输入格式要求
内容的提问来源于stack exchange,提问作者Azrael62
相关产品推荐
相关产品推荐

