21xrx.com
2024-09-19 10:13:00 Thursday
登录
文章检索 我的文章 写文章
如何在C++语言中打印日历
2023-07-12 14:36:49 深夜i     --     --
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++这个强大的编程语言。

  
  

评论区

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