Lines Matching refs:tm

58 	struct tm * time_to_tm(const time_t *, struct tm *),
62 struct tm tm;
87 ATF_CHECK(time_to_tm(&t, &tm) != NULL);
89 ATF_CHECK_MSG(tm.tm_year + 1900 == year,
91 argstr, year, (int)tm.tm_year);
93 ATF_CHECK_MSG(tm.tm_mon + 1 == month,
95 argstr, month, (int)tm.tm_mon);
97 ATF_CHECK_MSG(tm.tm_mday == day,
99 argstr, day, (int)tm.tm_mday);
101 ATF_CHECK_MSG(tm.tm_hour == hour,
103 argstr, hour, (int)tm.tm_hour);
105 ATF_CHECK_MSG(tm.tm_min == minute,
107 argstr, minute, (int)tm.tm_min);
109 ATF_CHECK_MSG(tm.tm_sec == second,
111 argstr, second, (int)tm.tm_sec);
195 struct tm tm;
215 tm = (struct tm){
219 t = mktime(&tm);
238 struct tm tm;
241 #define REL_CHECK(s, now, tm) do { \
245 q = mktime(&tm); \
270 ATF_CHECK(localtime_r(&now, &tm) != NULL);
271 tm.tm_mday--;
273 tm.tm_isdst = -1;
274 REL_CHECK("yesterday", now, tm);
276 ATF_CHECK(localtime_r(&now, &tm) != NULL);
277 tm.tm_mday++;
279 tm.tm_isdst = -1;
280 REL_CHECK("tomorrow", now, tm);
282 ATF_CHECK(localtime_r(&now, &tm) != NULL);
283 if (tm.tm_wday > 4)
284 tm.tm_mday += 7;
285 tm.tm_mday += 4 - tm.tm_wday;
287 tm.tm_sec = tm.tm_min = tm.tm_hour = 0;
288 tm.tm_isdst = -1;
289 REL_CHECK("this thursday", now, tm);
291 ATF_CHECK(localtime_r(&now, &tm) != NULL);
292 tm.tm_mday += 14 - (tm.tm_wday ? tm.tm_wday : 7);
293 tm.tm_sec = tm.tm_min = tm.tm_hour = 0;
294 tm.tm_isdst = -1;
295 REL_CHECK("next sunday", now, tm);
297 ATF_CHECK(localtime_r(&now, &tm) != NULL);
298 if (tm.tm_wday <= 5)
299 tm.tm_mday -= 7;
300 tm.tm_mday += 5 - tm.tm_wday;
301 tm.tm_sec = tm.tm_min = 0;
302 tm.tm_hour = 16;
303 tm.tm_isdst = -1;
304 REL_CHECK("last friday 4 p.m.", now, tm);
306 ATF_CHECK(localtime_r(&now, &tm) != NULL);
307 tm.tm_mday += 14;
308 if (tm.tm_wday > 3)
309 tm.tm_mday += 7;
310 tm.tm_mday += 3 - tm.tm_wday;
311 tm.tm_sec = tm.tm_min = 0;
312 tm.tm_hour = 3;
313 tm.tm_isdst = -1;
314 REL_CHECK("we fortnight 3 a.m.", now, tm);
316 ATF_CHECK(localtime_r(&now, &tm) != NULL);
317 tm.tm_min -= 5;
318 tm.tm_isdst = -1;
319 REL_CHECK("5 minutes ago", now, tm);
321 ATF_CHECK(localtime_r(&now, &tm) != NULL);
322 tm.tm_hour++;
323 tm.tm_min += 37;
324 tm.tm_isdst = -1;
325 REL_CHECK("97 minutes", now, tm);
327 ATF_CHECK(localtime_r(&now, &tm) != NULL);
328 tm.tm_mon++;
329 if (tm.tm_mon == 1 &&
330 tm.tm_mday > 28 + isleap(tm.tm_year))
331 tm.tm_mday = 28 + isleap(tm.tm_year);
332 else if ((tm.tm_mon == 3 || tm.tm_mon == 5 ||
333 tm.tm_mon == 8 || tm.tm_mon == 10) && tm.tm_mday == 31)
334 tm.tm_mday = 30;
335 tm.tm_isdst = -1;
336 REL_CHECK("month", now, tm);
338 ATF_CHECK(localtime_r(&now, &tm) != NULL);
339 tm.tm_mon += 2; /* "next" means add 2 ... */
340 if (tm.tm_mon == 13 &&
341 tm.tm_mday > 28 + isleap(tm.tm_year + 1))
342 tm.tm_mday = 28 + isleap(tm.tm_year + 1);
343 else if (tm.tm_mon == 8 && tm.tm_mday == 31)
344 tm.tm_mday = 30;
345 tm.tm_isdst = -1;
346 REL_CHECK("next month", now, tm);
348 ATF_CHECK(localtime_r(&now, &tm) != NULL);
349 tm.tm_mon--;
350 if (tm.tm_mon == 1 &&
351 tm.tm_mday > 28 + isleap(tm.tm_year))
352 tm.tm_mday = 28 + isleap(tm.tm_year);
353 else if ((tm.tm_mon == 3 || tm.tm_mon == 5 ||
354 tm.tm_mon == 8 || tm.tm_mon == 10) && tm.tm_mday == 31)
355 tm.tm_mday = 30;
356 tm.tm_isdst = -1;
357 REL_CHECK("last month", now, tm);
359 ATF_CHECK(localtime_r(&now, &tm) != NULL);
360 tm.tm_mon += 6;
361 if (tm.tm_mon == 13 &&
362 tm.tm_mday > 28 + isleap(tm.tm_year + 1))
363 tm.tm_mday = 28 + isleap(tm.tm_year + 1);
364 else if ((tm.tm_mon == 15 || tm.tm_mon == 17 ||
365 tm.tm_mon == 8 || tm.tm_mon == 10) && tm.tm_mday == 31)
366 tm.tm_mday = 30;
367 tm.tm_mday += 2;
368 tm.tm_isdst = -1;
369 REL_CHECK("+6 months 2 days", now, tm);
371 ATF_CHECK(localtime_r(&now, &tm) != NULL);
372 tm.tm_mon -= 9;
373 if (tm.tm_mon == 1 && tm.tm_mday > 28 + isleap(tm.tm_year))
374 tm.tm_mday = 28 + isleap(tm.tm_year);
375 else if ((tm.tm_mon == -9 || tm.tm_mon == -7 ||
376 tm.tm_mon == -2) && tm.tm_mday == 31)
377 tm.tm_mday = 30;
378 tm.tm_isdst = -1;
379 REL_CHECK("9 months ago", now, tm);
381 ATF_CHECK(localtime_r(&now, &tm) != NULL);
382 if (tm.tm_wday <= 2)
383 tm.tm_mday -= 7;
384 tm.tm_mday += 2 - tm.tm_wday;
385 tm.tm_isdst = -1;
386 tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
387 REL_CHECK("1 week ago Tu", now, tm);
389 ATF_CHECK(localtime_r(&now, &tm) != NULL);
390 tm.tm_isdst = -1;
391 tm.tm_mday++;
392 tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
393 REL_CHECK("midnight tomorrow", now, tm);
395 ATF_CHECK(localtime_r(&now, &tm) != NULL);
396 tm.tm_isdst = -1;
397 tm.tm_mday++;
398 tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
399 REL_CHECK("tomorrow midnight", now, tm);
401 ATF_CHECK(localtime_r(&now, &tm) != NULL);
402 tm.tm_isdst = -1;
403 tm.tm_mday++;
404 tm.tm_hour = 12;
405 tm.tm_min = tm.tm_sec = 0;
406 REL_CHECK("noon tomorrow", now, tm);
408 ATF_CHECK(localtime_r(&now, &tm) != NULL);
409 if (tm.tm_wday > 2)
410 tm.tm_mday += 7;
411 tm.tm_mday += 2 - tm.tm_wday;
412 tm.tm_sec = tm.tm_min = tm.tm_hour = 0;
413 tm.tm_isdst = -1;
414 REL_CHECK("midnight Tuesday", now, tm);
416 ATF_CHECK(localtime_r(&now, &tm) != NULL);
417 if (tm.tm_wday > 2 + 1)
418 tm.tm_mday += 7;
419 tm.tm_mday += 2 - tm.tm_wday;
420 tm.tm_mday++; /* xxx midnight --> the next day */
421 tm.tm_sec = tm.tm_min = tm.tm_hour = 0;
422 tm.tm_isdst = -1;
423 REL_CHECK("Tuesday midnight", now, tm);