【发布时间】:2017-07-29 17:33:27
【问题描述】:
我有很多格式为“HH:MM”的字符串,我必须经常对它们进行算术运算(例如加 5 分钟、加 24 小时等)。
我想知道标准库中是否有任何内置类可以处理此类算术,而不必手动更改字符串和处理极端情况?
【问题讨论】:
-
在我看来,在输入时将这些字符串转换为整数会更容易,做任何你想要的算术,然后将其转换回这种格式进行输出。
-
@Mattenii 这就是我现在正在做的事情。但是,有时我需要加上“168”分钟。然后我需要找到多少小时,多少分钟,检查分钟是否超过 59,迭代小时,添加小时数,看看它是否超过 23,如果它确实采用了 mod 24。看起来仅做一项基本任务(我猜这不仅仅是我的问题),这就是为什么我要问是否有任何本地支持。
-
也就是说,时代在不断地改变,而不仅仅是改变一次。所以我想要一个自动处理时间转换/时间差异的类。
-
但是如果你只存储一个数字,比如分钟,那么你可以添加分钟没问题,小时只需要乘以60。
-
听起来您想转换为
std::time_t并对其执行任何操作,然后将其转换回您喜欢的任何格式的字符串。看看<ctime>标准库。