【C++】7-7 时间换算

这篇文章介绍了一个C++程序,用于计算给定重复次数和秒数后的时间转换,以时:分:秒格式表示,当时间超过24小时时,会从0时开始计数。

7-7 时间换算

分数 10

全屏浏览

切换布局

作者 王秀

单位 福州大学

输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:

输入一个时间数值,再输入秒数 n,输出该时间再过 n 秒后的时间值,时间的表示形式为时:分:秒,超过 24 时从 0 时重新开始计时。

输出格式: printf("time: %d:%d:%d\n", );

输入输出示例:括号内为说明,无需输入输出

输入样例:

3	   (repeat=3)
0:0:1
59	   (秒数n=59)
11:59:40   
30	   (秒数n=30)
23:59:40   
301	   (秒数n=301)

输出样例:

time: 0:1:0	   (0:0:01加上59秒的新时间)   
time: 12:0:10	   (11:59:40加上30秒的新时间)
time: 0:4:41	   (23:59:40加上301秒的新时间)

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<iostream>
using namespace std;
int main()
{
    int repeat,n,h,m,s;
    char maohao;
    cin>>repeat;
    for(int i=0;i<repeat;i++)
    {
        cin>>h>>maohao>>m>>maohao>>s>>n;
        cout<<"time: "<<(h+(m+(s+n)/60)/60)%24<<':'<<(m+(s+n)/60)%60<<':'<<(s+n)%60<<endl;
    }
}

### C++ 时间换算 方法 示例 在 C++ 中进行时间换算可以通过定义一个时间类来实现,该类包含小时、分钟和秒作为数据成员,并通过运算符重载支持时间的加法和减法操作。以下是一个完整的代码示例,展示了如何定义一个时间类并实现时间换算的功能[^3]。 ```cpp #include <iostream> using namespace std; class Time { private: int hour, minute, second; public: // 构造函数 Time(int h = 0, int m = 0, int s = 0) : hour(h), minute(m), second(s) { normalize(); // 调用规范化函数以确保时间正确 } // 输出时间 void print() const { cout << "Time: " << hour << ":" << minute << ":" << second << endl; } // 运算符重载 +(加号) Time operator+(int n) const { Time result(hour, minute, second + n); // 将秒数相加 return result; } // 运算符重载 -(减号) Time operator-(int n) const { Time result(hour, minute, second - n); // 将秒数相减 return result; } private: // 规范化时间 void normalize() { if (second >= 60) { minute += second / 60; second %= 60; } if (minute >= 60) { hour += minute / 60; minute %= 60; } if (hour >= 24) { hour %= 24; // 超过24小时从0重新开始计时 } if (second < 0) { minute -= (-second + 59) / 60; // 处理负秒数 second = (second + 60) % 60; } if (minute < 0) { hour -= (-minute + 59) / 60; // 处理负分钟数 minute = (minute + 60) % 60; } if (hour < 0) { hour = (hour + 24) % 24; // 处理负小时数 } } }; int main() { int h, m, s, n; while (cin >> h >> m >> s >> n) { if (h == 0 && m == 0 && s == 0 && n == 0) break; // 结束条件 Time t(h, m, s); cout << "Original time: "; t.print(); Time new_time = t + n; // 加上n秒 cout << "After adding " << n << " seconds: "; new_time.print(); } return 0; } ``` 上述代码中,`Time` 类实现了时间的基本功能,包括构造函数、输出函数以及运算符重载 `+` 和 `-`。通过调用 `normalize()` 函数,确保时间始终处于合法范围内。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值