You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 23:06:03