Diff -funksjon på C -språk

Diff -funksjon på C -språk
Funksjoner definert i “tiden.H ”-overskrift brukes til å bestemme, beregne og konvertere UNIX -tider. Tidsenheten i dette systemet er den andre. For å få datadataene, må en konvertering gjøres.

I dette Linux hint Artikkel, vi vil vise deg hvordan du bruker DIFFTIME () -funksjonen for å bestemme forskjellen mellom to UNIX -tider. Vi vil diskutere syntaks for denne funksjonen, inngangs- og utgangsargumentene og datatypene som brukes i hvert tilfelle. Deretter bruker vi funksjonen med noen praktiske eksempler inkludert kodebiter i bilder.

DiffTime () -funksjon

DiffTime () Funksjonssyntaks på C -språk

dobbelt DIF = diff time (time_t t_2, time_t t_1);

Beskrivelse av difftiden () -funksjonen på C -språk

De DiffTime () Funksjon beregner tidsforskjellen i sekunder mellom T_1 og T_2 og returnerer resultatet i Diff.

Time_T -variabelen er en del av "Time" -biblioteket og er definert i overskriften. Både TIME_T, clock_t og tm er typedef som brukes av funksjoner i dette biblioteket for å returnere resultatene.

De DiffTime () Funksjon brukes vanligvis til å beregne forskjellen mellom en gitt tid og den nåværende UNIX -tiden. Deretter bruker vi divisjonsmatematikken for å finne forskjellen på dager, timer, minutter osv.

De DiffTime () er definert i “tiden.h ”header. Før denne funksjonen må vi inkludere den i ".C ”eller“.H ”-filen som følger:

#inkludere

Når vi inkluderer “tiden.H ”header, vi kan bruke DiffTime (), tid (), og alle funksjoner som er definert i “Tid.h ”.

Hvordan beregne tidsforskjellen mellom to tidsstempler ved bruk av diff -time () -funksjonen på C -språket

I dette eksemplet beregner vi antall sekunder som gikk siden 1. januar 2000 kl. 00:00 til denne koden er utført på datamaskinen din.

Det første trinnet er å inkludere bibliotekene som vi bruker og definerer T_1 og T_2 Variabler av TIME_T -type og dobbelt Diff Som vist i følgende:

#inkludere
#inkludere
tomrom ()

dobbel t_diff;
TIME_T T_1, T_2;
// ..

Unix Time er sekundene som er gått siden 00:00:00 UTC 1. januar 1970. For datoen og klokkeslettet som er 1. januar 2000 kl. 00:00:00, er denne telleren på 946.695.600 sekunder. Dette er verdien av T_2 variabel.

Den nåværende UNIX -tiden bestemmes ved bruk av tid () -funksjonen. Denne funksjonen returnerer gjeldende tid i en variabel av TIME_T -type. I dette tilfellet er det det T_1 som vi definerte tidligere.

I det følgende fragmentet tildeler vi UNIX -tiden som tilsvarer 1. januar 2000 på tidspunktet 00:00:00 til T_1. Vi får den nåværende UNIX -tiden i T_2 ved hjelp av tid () -funksjonen og viser resultatet i kommandokonsollen ved hjelp av printf () -funksjonen.

#inkludere
#inkludere
tomrom ()

TIME_T T_1, T_2 = 946695600;
t_1 = tid (null);
printf ("UNIX -tiden er: %ld \ n", t_1);

Følgende bilde viser utførelsen av dette fragmentet og antall UNIX -sekunder på T_1:

Etter at vi har fått gjeldende tid i T_2 variabel, vi har allerede de to dataene vi trenger for inngangsargumentene til DiffTime () funksjon.

Neste trinn er å finne tidsforskjellen mellom disse to dataene. For å gjøre dette, kaller vi DiffTime () funksjon med T_1 og T_2 som inngangsargumenter og dobbelt DIFf Som utgangsargument.

Følgende utdrag viser hele koden som kaller denne funksjonen og viser forskjellen mellom T_1 og T_2 I kommandokonsollen:

#inkludere
#inkludere
tomrom ()

dobletiff;
TIME_T T_1, T_2 = 946695600;
t_1 = tid (null);
Diff = DiffTime (T_1, T_2);
printf ("forskjellen i sekunder er: %li \ n", (lang int) diff);

Følgende bilde viser utdataene fra DiffTime (), sekundersforskjellen mellom 00:00:00 UTC 1. januar 1970, og tiden som denne koden blir utført på kommandolinjen:

Hvordan konvertere UNIX -sekundene til DateTime -format på C -språket

CTIME () -funksjonen godtar variablene til TIME_T -skriv inn inngangsargumentene og returnerer en streng med UNIX -tiden som konverteres til DateTime -format.

Deretter bruker vi koden fra forrige eksempel og CTIME () og printf () -funksjonene for å vise tidene for T_1 og T_2 som blir konvertert til datetime.

#inkludere
#inkludere
tomrom ()

dobletiff;
TIME_T T_1, T_2 = 946695600;
t_1 = tid (null);
Diff = DiffTime (T_1, T_2);
printf ("forskjellen mellom %s", ctime (& t_2));
printf ("og %s", ctime (& t_1));
printf ("er sekunder %s \ n", (lang int) diff);

Følgende bilde viser dato- og klokkeslettformat på T_1 og T_2:

Konklusjon

I dette Linux hint Artikkel, vi forklarte trinn-for-trinn-prosessen om hvordan du bruker DiffTime () For å finne forskjellen mellom to UNIX -tider. Vi forklarte også kort noen av tilleggsfunksjonene til "Time" -biblioteket som er nødvendige for å få disse dataene og konvertere dem til dags dato og tidsformat. Vi håper at du fant denne artikkelen nyttig. For flere tips på C -språket, bruk søkemotoren på nettstedet vårt.