21xrx.com
2025-03-23 23:48:44 Sunday
文章检索 我的文章 写文章
如何在C++语言中打印日历
2023-07-12 14:36:49 深夜i     34     0
C++ 打印 日历 日期 循环

C++是一种常用的编程语言,许多开发者都选择使用它来开发程序。当我们需要在程序中生成日历时,C++可以帮助我们轻松地实现这一目标。下面是一个简单的方法来在C++中打印日历。

首先,我们需要使用C++中的标准库函数“ctime”,它可以帮助我们获取当前日期和时间。我们可以使用“time_t”类型的变量来存储此信息。

接下来,我们可以使用“tm”结构体来存储日期信息。该结构体包括年(tm_year)、月(tm_mon)和日(tm_mday)等属性。

我们可以使用以下代码获取系统当前时间:

time_t now = time(0);
tm *ltm = localtime(&now);

然后,我们可以将获取到的年份和月份传递给一个我们编写的函数,并获取该月份的天数。以下是一个计算天数的函数示例:

int getDaysInMonth(int year, int month) {
  switch (month) {
    case 2:
      if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
        return 29;
       else
        return 28;
      
    case 4:
    case 6:
    case 9:
    case 11:
      return 30;
    default:
      return 31;
  }
}

现在,我们可以使用以下代码打印出一个月份的日历:

void printCalendar(int year, int month) {
  printf("   %d/%d\n", year, month);
  printf("Su Mo Tu We Th Fr Sa\n");
  int daysInMonth = getDaysInMonth(year, month);
  int weekDay = 0;
  for (int day = 1; day <= daysInMonth; day++) {
    if (day == 1) {
      for (int i = 0; i < ltm->tm_wday; i++) {
        printf("  ");
        weekDay++;
      }
    }
    printf("%2d ", day);
    weekDay++;
    if (weekDay == 7) {
      printf("\n");
      weekDay = 0;
    }
  }
  if (weekDay != 0) {
    printf("\n");
  }
}

最后,我们可以在主函数中调用它:

int main() {
  int year = ltm->tm_year + 1900;
  int month = ltm->tm_mon + 1;
  printCalendar(year, month);
  return 0;
}

在这里,我们打印了当前月份的日历,但是也可以通过修改年份和月份来获取其他月份的日历。

这是一个简单的方法来在C++中打印日历。希望这篇文章对您有所帮助,也希望您能够在开发中灵活运用C++这个强大的编程语言。

  
  

评论区