21xrx.com
2025-04-10 04:42:32 Thursday
文章检索 我的文章 写文章
C++编写万年历代码
2023-06-29 15:04:24 深夜i     13     0
C++编程 万年历 日期计算 格式化输出 控制台应用程序

万年历是用于显示特定年、月、日对应的星期几以及当月的日历的工具。在计算机编程中,我们可以用C++编写一个简单的万年历程序,方便我们在计算机显示屏上查看日历。

要编写一个简单的万年历程序,我们需要做以下几个步骤:

1.获取用户输入的年份和月份。

2.计算这个月的第一天是星期几。

3.计算这个月有多少天。

4.根据计算结果输出日历。

下面我们就一步步来实现这个过程。

首先,获取用户的输入。我们可以用cin语句获取用户输入的年份和月份:

int year, month;
cout << "请输入年份和月份:" << endl;
cin >> year >> month;

接下来,我们需要计算这个月的第一天是星期几。我们可以用C++中的ctime库来获得当前时间,然后根据当前时间来推算出这个月的第一天是星期几。代码如下:

#include <ctime>
time_t now = time(0);
tm *ltm = localtime(&now);
ltm->tm_year = year - 1900;
ltm->tm_mon = month - 1;
ltm->tm_mday = 1;
mktime(ltm);
int firstday = ltm->tm_wday;

现在我们已经获得了这个月的第一天是星期几,接下来我们需要计算这个月有多少天。这里我们可以用C++中的ctime库中的mktime函数来计算。具体做法是先将这个月的第一天设置为日期为1,然后不断增加天数,直到日期不再是这个月的日期为止。这样我们就可以得到这个月有多少天了。代码如下:

int days = 0;
while (ltm->tm_mon == month - 1) {
  ltm->tm_mday++;
  mktime(ltm);
  days++;
}

最后,我们需要根据计算结果来输出日历。我们可以用两个循环来完成这个任务。第一个循环用于输出星期几,第二个循环用于输出日期。代码如下:

cout << "日\t一\t二\t三\t四\t五\t六" << endl;
for (int i = 0; i < firstday; i++) {
  cout << "\t";
}
for (int i = 1; i <= days; i++) {
  cout << i << "\t";
  if ((i + firstday) % 7 == 0)
    cout << endl;
  
}

现在我们已经完成了一个简单的万年历程序。我们把以上几个步骤合并到一起就是完整的代码了。

  
  

评论区