Роббинс Арнольд
Шрифт:
Хотя ISO С не указывает, чем является значение
Однако, поскольку переносимый код может потребоваться запустить на не-POSIX системах, существует функция
Возвращаемым типом
В обоих предыдущих примерах обратите внимание на использование типизированных констант, чтобы форсировать выполнение вычислений с нужным математическим типом:
6.1.2. Разложение времени:
На практике форма представления даты и времени в виде «секунд с начала эпохи» не является очень удобной, кроме очень простых сравнений. Самостоятельное вычисление компонентов времени, таких, как месяц, день, год и т.д., подвержено ошибкам, поскольку необходимо принять во внимание местный часовой пояс (возможно, с учетом перехода на летнее время), правильно вычислить високосные годы и пр. К счастью, две стандартные процедуры делают за вас эту работу:
Обе функции возвращают указатель на
Таблица 6.1. Поля структуры
Член | Диапазон | Значение |
---|---|---|
tm_sec | 0–60 | Секунда минуты. Секунда 60 предусматривает пропущенные (leap) секунды. (В C89 был диапазон 0–61.) |
tm_min | 0–59 | Минута часа. |
tm_hour | 0–23 | Час дня |
tm_mday | 1–31 | День месяца |
tm_mon | 0–11 | Месяц года |
tm_year | 0–N | Год, начиная с 1900 г. |
tm_wday | 0–6 | День недели, воскресенье = 0 |
tm_yday | 0–365 | День года, 1 января = 0. |
tm_isdst | <0, 0, >0 | Флаг летнего времени. |
Стандарт ISO С представляет большинство этих значений как «