Funzione diversa in lingua c

Funzione diversa in lingua c
Funzioni definite nel "tempo.L'intestazione h "viene utilizzata per determinare, calcolare e convertire i tempi Unix. L'unità di tempo in questo sistema è la seconda. Per ottenere i dati della data, deve essere eseguita una conversione.

In questo Suggerimento Linux Articolo, ti mostreremo come utilizzare la funzione Diffftime () per determinare la differenza tra due volte UNIX. Discuteremo la sintassi di questa funzione, gli argomenti di input e output e i tipi di dati utilizzati in ciascun caso. Quindi, applichiamo la funzione con alcuni esempi pratici tra cui frammenti di codice nelle immagini.

Funzione difftime ()

Diffftime () Sintassi della funzione in lingua C

double dif = difftime (time_t t_2, time_t t_1);

Descrizione della funzione Diffftime () in lingua C

IL Diffftime () La funzione calcola la differenza di tempo in secondi tra T_1 e T_2 e restituisce il risultato in Diff.

Il tipo di variabile Time_t fa parte della libreria "time" ed è definito nella sua testata. Entrambi time_t, clock_t e tm sono typedef che viene utilizzato dalle funzioni in questa libreria per restituire i loro risultati.

IL Diffftime () La funzione viene in genere utilizzata per calcolare la differenza tra un determinato tempo e il tempo di UNIX corrente. Quindi, usiamo la divisione matematica per trovare la differenza di giorni, ore, minuti, ecc.

IL Diffftime () è definito nel "tempo.H ”intestazione. Prima di questa funzione, dobbiamo includerlo nel nostro ".C "o".file h "come segue:

#includere

Una volta che includiamo il "tempo.H ”intestazione, possiamo usare il Diffftime (), tempo () e tutte le funzioni definite in "tempo.H".

Come calcolare la differenza di tempo tra due timestamp usando la funzione Diffftime () nella lingua C

In questo esempio, calcoliamo il numero di secondi trascorsi dal 1 ° gennaio 2000 alle 00:00:00 fino a quando questo codice non viene eseguito sul computer.

Il primo passo è includere le librerie che utilizziamo e definiamo il t_1 E T_2 Variabili del tipo time_t e doppio Diff come mostrato nel seguente:

#includere
#includere
void main ()

doppio t_diff;
time_t t_1, t_2;
// ..

Il tempo unix è i secondi trascorsi dalle 00:00:00 UTC il 1 ° gennaio 1970. Per la data e l'ora che è il 1 ° gennaio 2000 alle 00:00:00, questo contatore è a 946.695.600 secondi. Questo è il valore del T_2 variabile.

L'attuale tempo unix è determinato usando la funzione time (). Questa funzione restituisce l'ora corrente in una variabile di tipo time_t. In questo caso, lo è t_1 che abbiamo definito in precedenza.

Nel frammento seguente, assegniamo il tempo UNIX corrispondente al 1 gennaio 2000 al momento 00:00 a T_1. Otteniamo il tempo UNIX corrente in T_2 usando la funzione time () e visualizziamo il risultato nella console di comando utilizzando la funzione printf ().

#includere
#includere
void main ()

time_t t_1, t_2 = 946695600;
t_1 = time (null);
printf ("Il tempo unix è: %ld \ n", t_1);

L'immagine seguente mostra l'esecuzione di questo frammento e il numero di secondi UNIX a t_1:

Dopo aver ottenuto l'ora corrente in T_2 variabile, abbiamo già i due dati di cui abbiamo bisogno per gli argomenti di input del Diffftime () funzione.

Il prossimo passo è trovare la differenza di tempo tra questi due dati. Per fare questo, chiamiamo il Diffftime () funzione con t_1 e T_2 come argomenti di input e doppio difF Come argomento di output.

Il seguente snippet mostra il codice completo che chiama questa funzione e visualizza la differenza tra t_1 E T_2 Nella console di comando:

#includere
#includere
void main ()

Doublebleff;
time_t t_1, t_2 = 946695600;
t_1 = time (null);
Diff = Diffftime (T_1, T_2);
printf ("La differenza in secondi è: %li \ n", (long int) diff);

La seguente immagine mostra l'output di Difftime (), la differenza dei secondi tra 00:00:00 UTC il 1 ° gennaio 1970 e il tempo in cui questo codice viene eseguito sulla riga di comando:

Come convertire i secondi UNIX in formato DateTime nella lingua C

La funzione ctime () accetta le variabili del tipo time_t nei suoi argomenti di input e restituisce una stringa con il tempo UNIX che viene convertito in formato DateTime.

Successivamente, utilizziamo il codice dall'esempio precedente e le funzioni ctime () e printf () per visualizzare i tempi di t_1 E T_2 che vengono convertiti in DateTime.

#includere
#includere
void main ()

Doublebleff;
time_t t_1, t_2 = 946695600;
t_1 = time (null);
Diff = Diffftime (T_1, T_2);
printf ("La differenza tra %s", ctime (& t_2));
printf ("e %s", ctime (& t_1));
printf ("is seconds %s \ n", (long int) diff);

La seguente immagine mostra il formato della data e dell'ora su t_1 E T_2:

Conclusione

In questo Suggerimento Linux Articolo, abbiamo spiegato il processo passo-passo su come utilizzare Diffftime () Per trovare la differenza tra due volte Unix. Abbiamo anche spiegato brevemente alcune delle funzioni aggiuntive della libreria "tempo" necessarie per ottenere questi dati e convertirli fino ad oggi e il formato orario. Speriamo che tu abbia trovato questo articolo utile. Per ulteriori suggerimenti sulla lingua C, utilizzare il motore di ricerca sul nostro sito Web.