“round”time_t到day / hour?

时间:2013-02-02 01:41:31

标签: c time

我有一个unix time_t,有没有简单的方法将它转换为time_t所以它:

  1. 代表time_t当天的午夜?
  2. 表示time_t的小时开始?

2 个答案:

答案 0 :(得分:6)

这样的事情:

time_t t = time(NULL);

t -= (t % 86400); 

常数86400 = 24 * 60 * 60 - 记住一个有用的数字,我认为...;)

答案 1 :(得分:3)

让计算机为你记住天体常数:

time_t      arg, start_of_hour, start_of_day;
struct tm   *temp;

temp = localtime(&arg);
temp->tm_sec  = 0;
temp->tm_min  = 0;
start_of_hour = mktime(temp);
temp->tm_hour = 0;
start_of_day  = mktime(temp);

如果您愿意,可以使用gmtime