21xrx.com
2024-12-23 00:50:17 Monday
登录
文章检索 我的文章 写文章
C++计算指定年月的天数
2023-06-27 06:25:21 深夜i     --     --
C++ 计算 指定年 天数

在日常开发中,经常需要根据指定的日期计算该月的天数,尤其是在涉及到数据统计和分析的场景下。而在 C++ 中,我们可以通过一些基本的计算方法来实现这个功能。

首先,我们需要判断指定年份是否为闰年。闰年的判断规则为:年份能够被 4 整除但不能被 100 整除,或者能够被 400 整除。在代码实现中,我们可以使用如下语句:


bool isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);

接下来,我们需要根据月份的不同来确定该月的天数。一般而言,大月有 31 天,小月有 30 天,2 月份根据闰年与否分别有 29 或 28 天。我们可以使用 switch 语句来完成这一步判断:


int days;

switch (month) {

  case 1:

  case 3:

  case 5:

  case 7:

  case 8:

  case 10:

  case 12:

    days = 31;

    break;

  case 4:

  case 6:

  case 9:

  case 11:

    days = 30;

    break;

  case 2:

    days = isLeapYear ? 29 : 28;

    break;

  default:

    days = -1; // 月份无效

    break;

}

最后,我们需要注意输入的年份和月份是否合法。年份应该大于 0,月份应该在 1 到 12 之间。完整的代码如下:


#include <iostream>

using namespace std;

int main() {

  int year, month;

  cout << "请输入年份:";

  cin >> year;

  cout << "请输入月份:";

  cin >> month;

  if (year > 0 && month >= 1 && month <= 12) {

    bool isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);

    int days;

    switch (month) {

      case 1:

      case 3:

      case 5:

      case 7:

      case 8:

      case 10:

      case 12:

        days = 31;

        break;

      case 4:

      case 6:

      case 9:

      case 11:

        days = 30;

        break;

      case 2:

        days = isLeapYear ? 29 : 28;

        break;

      default:

        days = -1; // 月份无效

        break;

    }

    if (days > 0)

      cout << year << "年" << month << "月的天数为:" << days << endl;

     else

      cout << "输入的月份无效!" << endl;

    

  } else

    cout << "输入的年份或月份无效!" << endl;

  

  return 0;

}

总之,通过以上简单的计算方法,我们可以快速计算出指定年份和月份的天数。在实际应用中,我们可以将这个功能封装为一个函数,方便日后的调用和复用。

  
  

评论区

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