Slik konverterer sekunder siden epoke til Time i C ++

Slik konverterer sekunder siden epoke til Time i C ++


"Time" -funksjonen i UNIX, C og C ++ returnerer antall sekunder siden midnatt den første av Janurary 1970, Greenwich Mean Time. Dette er kjent som epoken tid. Når programmerere foreslått at dette ikke var alltid praktisk, designere overbelastet tidsfunksjonen slik at den kunne brukes på to måter: å gi epoken tid og for å gi den tid som en tegnstreng som representerte år, dager, timer, minutter og sekunder siden den første av januar 1970 GMT. Siden den gang har et bibliotek med funksjoner blitt opprettet som inneholder funksjoner som konverterer denne strengen til noe mer nyttig.

Bruksanvisning

1 Inkluder time.h biblioteket i programmet med "# include <time.h>;" instruksjon. Definer et par variabler av typen time_t med instruksen "time_t TIME1, tid2;" for å holde de to versjonene av tiden strengen som vil bli utviklet under konverteringen. Ring tiden funksjon som dette: "tid (og TIME1)," å sette strengen du vil i variabelen time1.

2 Covert informasjonen i TIME1 streng i lokal tid med "local" funksjon som tar inn adressen TIME1 som inngangsparameter og setter resultatene i variabel tid2. Uttalelsen ser slik ut: "tid2 = local (& TIME1)," - tid2 nå inneholder lokal tid, men det er ikke helt i format til å skrive ut.

3 Transform tiden til sin endelige, utskriftsvennlig versjon med asctime funksjon. Denne transformasjonen kan gjøres rett i utskriften uttalelse. Utskriften uttalelsen ser slik ut: "printf (" Den nåværende tidspunkt er% s ", asctime (tid2));" som vil skrive noe sånt som dette: "Den nåværende tidspunkt er fr 23 september 22:01:47 2011."

Hint

  • Den tiltenkte bruk for "tid" funksjon er å måle forløpt tid. Når den brukes i denne opprinnelige form input parameter er NULL og en verdi returneres. Den variabelen som returverdien er tildelt må være time_t type. Så koden for å måle hvor lang tid det tar å kjøre prosedyren XYZ ville se slik ut: "# include <time.h>; time_t t1, t2; t1 = tid (NULL); XYZ; t2 = tid (NULL); printf "Tiden det tar å kjøre prosedyren XYZ er% d sekunder", T2 - T1), "som vil skrive noe sånt som" Tiden det tar å kjøre prosedyren XYZ er 147 sekunder ".
  • Typen time_t og funksjoner tid (), lokaltid () og asctime () er alle definert i time.h biblioteket. Hvis du ikke inkluderer den time.h biblioteket, vil alle disse bli flagget som udefinert.