3

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

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

2 回答 2

6

像这样的东西:

time_t t = time(NULL);

t -= (t % 86400); 

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

于 2013-02-02T02:07:48.353 回答
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,如果您愿意,可以使用。

于 2013-02-02T02:39:16.077 回答