Синтакса
интгеттимеофдаи( струцттимевал*град, струцтВременска зона*тз)Тхе геттимеофдаи () функција је дефинисана у сис/тиме.х заглавна датотека.
Аргументс
Ова функција има два аргумента:
1старгумент указује на тимевал структура. Тхе тимевал структура је декларисана као доле у сис/тиме.х заглавна датотека:
струцттимевал{
тиме_т тв_сец; // користи се секундама
сусецондс_т тв_усец; // користи се за микросекунде
}
Структурна временска структура представља календарско време. Има два члана:
- тв_сец : То је број секунди од епохе.
- тв_усец : То је додатних микросекунди након прорачуна броја секунди од епохе. .
2ндаргумент указује на Временска зона структура. Обично би требало да буде НУЛЛ јер струцт тимезоне је застарео. Овај аргумент служи само за компатибилност уназад.
Повратне вредности
О успеху, геттимеофдаи () ретурн 0, за неуспех функција враћа -1.
Једноставно Гет Тиме анд Принт
#инцлуде#инцлуде
интглавни() {
струцттимевал цуррент_тиме;
геттимеофдаи(&тренутно време,НУЛА);
принтф ('секунди: %лд нмикро секунди: %лд ',
тренутно време.тв_сец,тренутно време.тв_усец);
повратак 0;
}
Излаз:
Овде, сис/тиме.х укључено је за геттимеофдаи () функција и временска структура. Тхе геттимеофдаи () функција поставља време у члану структуре тимевал (цуррент_тиме). тв_сец је интегрални број секунди протеклих од почетка УНИКС епоха , у поноћ УТЦ 1. јануара 1970. и тв_усец је додатни број микросекунди протекао од тв_сец. Ако покренете програм, требало би да видите излаз. Сваки пут када покренете програм излаз ће се мењати.
Грешка у аргументу НУЛЛ
#инцлуде#инцлуде
интглавни() {
струцттимевал цуррент_тиме;
геттимеофдаи(НУЛА,НУЛА);
повратак 0;
}
Излаз:
У овом примеру приказан је први аргумент геттимеофдаи () функција не би требало да буде НУЛЛ. Упозорење о компилацији ће се појавити ако је први аргумент НУЛЛ.
Пример форматирања тренутног времена
#инцлуде#инцлуде
#инцлуде
интглавни() {
струцттимевал тв;
тиме_т т;
струцттм*инфо;
цхартампон[64];
геттимеофдаи(&ТВ,НУЛА);
т=ТВ.тв_сец;
инфо= Локално време (&т);
принтф ('%с', асцтиме (инфо));
стрфтиме (тампон, величинатампон, 'Данас је %А, %Б %д. н',инфо);
принтф ('%с',тампон);
стрфтиме (тампон, величинатампон, 'Време је %И: %М %п. н',инфо);
принтф ('%с',тампон);
повратак 0;
}
Излаз:
У овом примеру приказано је како штампати датум и време у другом формату. Није лако представити датуме од повратне вредности геттимеофдаи () функција. Овде, Локално време() и стрфтиме () функције се користе за лепо представљање враћене вредности геттимеофдаи () .
Тхе Локално време() функција узима аргумент, који је референца на показивач на тв_сец поље струцт тимевал и враћа референцу на показивач а струцт тм објекат.
Тхе стрфтиме () функција ће генерисати персонализовани, форматирани низ који приказује датум и време од струцт тм показивач. Спецификатори формата се користе за форматирани приказ. На пример, формат формат%д-%м-%И%Х:%М:%С наводи датум и време у овом облику:
04-14-2020 13:09:42Следе спецификатори конверзије који се могу користити за форматирани приказ:
Спецификатор | Значење |
%до | Скраћени назив дана у недељи према тренутној локацији. |
%ДО | Назив радног дана према тренутној локацији. |
% б | Назив скраћеног месеца према тренутној локацији. |
% Б | Назив целог месеца према тренутној локацији. |
% ц | Пожељни приказ датума и времена за тренутну локализацију. |
%д | Као децимални број за дан у месецу (опсег 01 - 31). |
%Х | Користећи 24 сата (распон 00-23) до сата као децимални број. |
%И | Користећи 12 сати (опсег 00-23) до сата као децимални број. |
%ј | Као децимални број за дан у години (опсег 001-366). |
%м | Као децимални број за месец (опсег 01 - 12). |
%М | Децимални број минута. |
%п | На основу наведене временске вредности, „ам“ или „пм“ или еквивалентни низови за тренутну локализацију. |
%С | Децимални број другог. |
% Икс | Пожељно представљање датума за тренутну локализацију, али без времена. |
% ИКС | Пожељно представљање времена за тренутну локализацију, али без датума. |
%и | Година је децимална, али нема века (у распону од 00 - 99). |
%И | Година је децимална, укључујући век. |
%ВИТХ | Временска зона. |
Коришћење геттимеофдаи за мерење времена извршавања програма
#инцлуде#инцлуде
интглавни() {
струцтвременски почетак,крај;
геттимеофдаи(&почетак,НУЛА);
за (инти= 0;и<1е5 ;и++) {
}
геттимеофдаи(&крај,НУЛА);
принтф ('Време потребно за бројање до 10^5 је: %лд микро секунди н',
((крај.тв_сец * 1000000 +крај.тв_усец) -
(почетак.тв_сец * 1000000 +почетак.тв_усец)));
повратак 0;
}
Излаз:
Овај пример показује како геттимеофдаи () функција се може користити за израчунавање времена извршавања програма.
Закључак
На овај начин, геттимеофдаи () функција се може користити у Линуку. За пренос постојећег кода, геттимеофдаи () функција се може користити, али у новом коду не би требало да се користи. цлоцк_геттиме () функција се може користити уместо геттимеофдаи () .