快速打印指定格式的日期包含星期几(C++代码实现)
日常工作中可能会遇到频繁按照指定格式填写日期的场景,博主也遇到了这些场景,所以一时兴起,写了一个C++版本的快速打印日期的代码。
下面是源代码
#include <iostream>
#include <string>
// 教科书版判断是否是闰年
bool IsLeapYear(const int iYear)
{
return (iYear % 4 == 0 && iYear % 100 != 0) || (iYear % 400 == 0);
}
int main(int argc, char *argv[])
{
// 1. 记录每个月的天数,分闰年和非润年两个版本
const int daysInMonth[2][12] = { {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,},
{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,},
};
// 2. 记录一周的名字,方便后面用数组下标循环访问
const char *weekName[7] = { "周一", "周二", "周三", "周四", "周五", "周六", "周日", };
// 3. 循环访问的控制变量
int iCnt = 0;
// 4. 遍历年份
for (int iYear = 2024; iYear < 2025; ++iYear)
{
// 遍历月份
for (int iMonth = 7; iMonth < 8; ++iMonth)
{
// 遍历当前月份的每天
for (int iDay = 1; iDay <= daysInMonth[IsLeapYear(iYear)][iMonth-1]; ++iDay)
{
// 1. 计算这一天是周几
std::string sWeek = weekName[iCnt % 7];
// 2. 递增
++iCnt;
// 3. 准备输出的日期格式(用户可以调整自己喜欢的格式)
std::string sOutput = std::to_string(iYear) + "/" +
std::to_string(iMonth) + "/" +
std::to_string(iDay) + sWeek;
// 4. 输入日期(此处可以换其他接口用以直接输出到excel表格中,此处为了教学直接输出到控制台)
std::cout << sOutput << std::endl;
}
}
}
// 5. 返回状态值
return 0;
}
生成结果如下所示
2024/7/1周一
2024/7/2周二
2024/7/3周三
2024/7/4周四
2024/7/5周五
2024/7/6周六
2024/7/7周日
2024/7/8周一
2024/7/9周二
2024/7/10周三
2024/7/11周四
2024/7/12周五
2024/7/13周六
2024/7/14周日
2024/7/15周一
2024/7/16周二
2024/7/17周三
2024/7/18周四
2024/7/19周五
2024/7/20周六
2024/7/21周日
2024/7/22周一
2024/7/23周二
2024/7/24周三
2024/7/25周四
2024/7/26周五
2024/7/27周六
2024/7/28周日
2024/7/29周一
2024/7/30周二
2024/7/31周三