21xrx.com
2024-12-27 21:08:56 Friday
登录
文章检索 我的文章 写文章
编写C++程序输入年月日日期
2023-07-04 19:54:04 深夜i     --     --
C++ 程序 输入 年月日 日期

对于程序员来说,编写程序输入年月日日期并不是一项难事。下面我们来介绍一种C++程序的实现方法。

首先,我们需要定义三个整型变量来输入年、月、日:


int year, month, day;

然后,我们需要使用cin函数来输入这些变量的值:


cin >> year >> month >> day;

接下来,我们需要编写一段检查日期是否合法的代码。这可以通过判断月份和日子的范围来实现。

对于月份,我们需要检查它是否在1到12之间。如果不是,则说明输入的日期不合法。


if (month < 1 || month > 12)

  cout << "Invalid month" << endl;

  return 0;

对于天数,我们需要根据月份来检查。对于31天的月份,我们需要检查日子是否在1到31之间;对于30天的月份,我们需要检查日子是否在1到30之间;对于2月份,我们需要特别处理闰年的情况。如果输入的日期不合法,则输出错误信息并退出。


if (day < 1 || day > 31)

  cout << "Invalid day" << endl;

  return 0;

if ((month == 4 || month == 6 || month == 9 || month == 11) && day > 30)

  cout << "Invalid day" << endl;

  return 0;

if (month == 2) {

  bool leapYear = false; // 是否是闰年

  if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)

    leapYear = true;

  

  if (leapYear && day > 29 || !leapYear && day > 28)

    cout << "Invalid day" << endl;

    return 0;

  

}

最后,如果输入的日期合法,则输出它的值:


cout << "The date is " << year << "-" << month << "-" << day << endl;

程序的完整代码如下所示:


#include <iostream>

using namespace std;

int main() {

  int year, month, day;

  cout << "Input year, month, day:" << endl;

  cin >> year >> month >> day;

  if (month < 1 || month > 12)

    cout << "Invalid month" << endl;

    return 0;

  

  if (day < 1 || day > 31)

    cout << "Invalid day" << endl;

    return 0;

  

  if ((month == 4 || month == 6 || month == 9 || month == 11) && day > 30)

    cout << "Invalid day" << endl;

    return 0;

  

  if (month == 2) {

    bool leapYear = false; // 是否是闰年

    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)

      leapYear = true;

    

    if (leapYear && day > 29 || !leapYear && day > 28)

      cout << "Invalid day" << endl;

      return 0;

    

  }

  cout << "The date is " << year << "-" << month << "-" << day << endl;

  return 0;

}

总的来说,编写C++程序输入年月日日期并不是一项难事。只要按照以上步骤,定义变量、输入数据、检查合法性并输出结果,我们就能够顺利地实现这个程序的功能。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复