21xrx.com
2024-12-28 23:06:01 Saturday
登录
文章检索 我的文章 写文章
编写一个计算日期是当年的第几天的C++程序
2023-06-25 08:40:04 深夜i     --     --
C++ 计算 日期 当年 第几天

在日常生活中,我们经常需要知道某个日期是一年中的第几天。在C++语言中,可以通过编写简单的程序来实现这一功能。

首先,我们需要通过用户输入获取所需计算的日期(月份和日),然后通过内置的库函数来获取该日期所在年份的第一天。在C++中,可以通过以下函数来获取年份的第一天:


struct tm 范围从 1 到 31

 int tm_mon;  // 月份

time_t time (time_t* timer);

struct tm* localtime (const time_t* timer);

通过以上函数,我们可以获取到一个时间结构体,其中包含了年、月、日、时、分、秒等时间信息。在这里,我们只需要获取到年份的第一天。

接下来,我们需要计算所需日期和年份第一天之间的天数差值,即可得到所需日期是该年的第几天。

以下是一个完整的C++程序示例:


#include <iostream>

#include <ctime>

using namespace std;

int main()

{

  int day, month;

  cout << "请输入月份和日期(以空格分隔开):" << endl;

  cin >> month >> day;

  time_t now = time(nullptr); // 获取当前时间信息

  tm createDate = *localtime(&now); // 获取当前时间信息的时间结构体

  createDate.tm_mon = month - 1; // 设置输入的月份

  createDate.tm_mday = day; // 设置输入的日期

  createDate.tm_year -= 1900; // 减去1900得到当前年份

  time_t firstDayTime = mktime(&createDate); // 获取输入日期所在年份的第一天的UNIX时间戳

  tm firstDate = *localtime(&firstDayTime); // 获取第一天的时间结构体

  int diffDays = (mktime(&createDate) - mktime(&firstDate)) / 86400 + 1; // 计算日期与第一天之间的天数差值

  cout << "该日期是该年的第" << diffDays << "天" << endl;

  return 0;

}

通过运行以上程序,我们可以通过输入日期计算出该日期是该年的第几天,满足日常生活中的计算需求。

  
  

评论区

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