news 2026/6/24 1:37:52

实现跨天跨年的代码分享

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
实现跨天跨年的代码分享

#include
#include
using namespace std;
// 日期基类
class Date {
protected:
int year, month, day;
// 获取当月合法最大天数,兼容闰年
int getMaxDay() const {
int monthDays[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0))
return 29;
return monthDays[month];
}
public:
Date(int y = 2026, int m = 1, int d = 1) : year(y), month(m), day(d) {}
// 日期增加1天
void addOneDay() {
day++;
if (day > getMaxDay())
{
day = 1;
month++;
if (month > 12)
{
month = 1;
year++;
}
}
}
// 打印日期
void showDate() const {
printf(“%d-%02d-%02d”, year, month, day);
}
};
// 时钟基类
class Clock {
protected:
int hour, minute, second;
string period;
public:
// 构造函数初始化时间,默认00:00:00 AM
Clock(int h = 0, int m = 0, int s = 0, string p = “AM”)
: hour(h), minute(m), second(s), period§ {
}
// 单秒递增
void addSecond() {
second++;
if (second >= 60)
{
second = 0;
minute++;
if (minute >= 60)
{
minute = 0;
hour++;
if (hour >= 12)
{
hour %= 12;
period = (period == “AM”) ? “PM” : “AM”;
if (hour == 0) hour = 12;
}
}
}
}
void showTime() const
{
printf("%02d:%02d:%02d %s ", hour, minute, second, period.c_str());
}
};
// 多重继承:日期+时钟一体类
class ClockWithDate : public Date, public Clock {
public:
// 多父类构造初始化
ClockWithDate(int y = 2026, int mo = 1, int d = 1, int h = 0, int mi = 0, int s = 0, string p = “AM”)
: Date(y, mo, d), Clock(h, mi, s, p) {
}

// 批量加N秒,自动处理跨天、跨年 void addManySeconds(int addNum) { for (int i = 0; i < addNum; i++) { // 记录加秒前时刻 bool isMidnightCross = (hour == 11 && minute == 59 && second == 59); addSecond(); // 若刚好从11:59:59变为12:00:00,说明跨一天 if (isMidnightCross && hour == 12 && minute == 0 && second == 0) { addOneDay(); } } } // 完整输出 日期+时间 void showAllInfo() const { showTime(); showDate(); cout << endl; }

};
int main()
{
// 初始化:2026年12月31日 23:59:59 PM
ClockWithDate dt(2026, 12, 31, 11, 59, 59, “PM”);
cout << “初始日期时间” << endl;
dt.showAllInfo();
int secInput;
cout << “请输入要增加的总秒数:”;
cin >> secInput;
dt.addManySeconds(secInput);
cout << “\n增加" << secInput << "秒后” << endl;
dt.showAllInfo();
return 0;
}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 1:33:48

移动端体验度量方法

移动端体验度量方法&#xff1a;提升用户满意度的关键 随着移动互联网的普及&#xff0c;移动端应用的用户体验已成为决定产品成败的关键因素之一。如何科学、系统地度量移动端体验&#xff0c;成为开发者和产品经理关注的焦点。本文将介绍几种常见的移动端体验度量方法&#…

作者头像 李华
网站建设 2026/6/24 1:29:43

游戏社交功能好友系统与实时聊天

游戏社交功能&#xff1a;好友系统与实时聊天的魅力 在现代游戏中&#xff0c;社交功能已成为不可或缺的一部分。无论是竞技对战还是开放世界探索&#xff0c;玩家之间的互动让游戏体验更加丰富。其中&#xff0c;好友系统和实时聊天功能作为社交的核心模块&#xff0c;不仅拉…

作者头像 李华
网站建设 2026/6/23 23:54:49

AIGC赋能前端开发

目录 一、引言&#xff1a;AIGC对前端开发的影响 1. AIGC与前端开发的关系 2. AIGC的行业现状 二、前端开发者的AIGC工具使用 1. AIGC工具 2. 具体使用 3. 配置规则提高结果准确性与规范性 4. 配置智能体 三、MCP&#xff08;Model Context Protocol 模型上下文协议&a…

作者头像 李华
网站建设 2026/6/23 23:48:37

Clock8性能优化:PHP时间操作的最佳实践与性能对比

Clock8性能优化&#xff1a;PHP时间操作的最佳实践与性能对比 【免费下载链接】clock Yet another clock abstraction 项目地址: https://gitcode.com/gh_mirrors/clock8/clock 在PHP开发中&#xff0c;时间操作是系统运行的基础模块&#xff0c;直接影响应用的性能和稳…

作者头像 李华
网站建设 2026/6/23 23:37:29

当传统3D渲染撞上瓶颈,高斯泼溅如何用CUDA加速打破僵局?

当传统3D渲染撞上瓶颈&#xff0c;高斯泼溅如何用CUDA加速打破僵局&#xff1f; 【免费下载链接】gsplat CUDA accelerated rasterization of gaussian splatting 项目地址: https://gitcode.com/GitHub_Trending/gs/gsplat 你是否曾经面对复杂的3D场景渲染时&#xff0…

作者头像 李华