mktime()
#include <time.h> time_t mktime(struct tm *time);
Описание
Возвращает эквивалент календарного времени на основе времени, заданного в поэлементном виде и хранимого в структуре, которая адресуется параметром time
Функция mktime() возвращает эквивалент календарного времени на основе времени, заданного в поэлементном виде и хранимого в структуре, которая адресуется параметром time. Элементы tm_wday и tm_yday устанавливаются самой функцией, поэтому их не нужно определять при ее вызове. Если функция mktime() не в состоянии представить информацию в виде допустимого календарного времени, возвращается значение -1. Совет программистуФункция mktime() особенно полезна, когда нужно узнать, на какой день недели выпадает конкретная дата. Например, каким днем недели будет 12 января 2012 года? Чтобы выяснить это, вызовите функцию mktime() с этой датой, а затем(после выполнения функции) обратитесь к члену tm_wday структуры tm. Он будет содержать день недели. Этот метод демонстрируется следующей программой. /* Определение дня недели для даты "12 января 2012 года" (January 12, 2012). */
#include <stdio.h>
#include <time.h>
char day[][20] = {
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
};
int main(void)
{
struct tm t;
t.tm_mday = 12;
t.tm_mon = 0;
t.tm_year = 112;
t.tm_hour = 0;
t.tm_min = 0;
t.tm_sec = 0;
t.tm_isdst = 0;
mktime(&t); //получаем день недели
printf("день недели %s.\n", day[t.tm_wday]);
return 0,
}
При выполнении этой программы функция mktime() автоматически вычисляет день недели, которым в данном случае является вторник(Thursday). Поскольку значение, возвращаемое функцией mktime(), не используется оно попросту игнорируется. |