c - 如何在 ANSI C 中获取 X 之前的天数和小时数

标签 c date time ansi-c

在 C 中,我试图获取“下周二上午 10 点”之前的天数和小时数。我没有确切的日期,因为这是一个重复发生的事件。

这就是我想要的:

下周二上午 10 点 = 3 天零 4 小时。

最佳答案

第 1 步:
获取当前工作日。
示例:

time_t rawtime;
struct tm * timeinfo;
time(&rawtime);
timeinfo = localtime(&rawtime);

现在,timeinfo->tm_wday 中已包含当前工作日,其值介于 0 到 6 之间。

第 2 步:
计算工作日的差值并乘以 24,加/减小时的差值,模除以 24 即可得到天数。

填充另一个 struct tm ,使用您拥有的信息(意味着在包装月份或年份时需要小心)和当前时间计算 future 日期。使用此 struct tm 计算 difftime(),将结果秒转换为天和小时。

关于c - 如何在 ANSI C 中获取 X 之前的天数和小时数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32283667/

相关文章:

c# - 如何将从数据库中检索到的日期转换为仅显示 d/mm/yyyy?

java - 使用 JSR303 进行 Spring MVC 日期格式验证

php - 将时间转换为 MySQL 时间

MySQL:连续时间内可用的时间跨度

c++ - chrono库的实现

c - 指针和 printf()

c - 无效函数错误?

C- 为什么char c=129 会转换成-127?

c - 如何将文件的偶数行存储到一个数组,将奇数行存储到另一个数组

mysql - 根据近似值选择行