Libreria gestione tempo

di il
4 risposte

Libreria gestione tempo

Salve!
Come da titolo, mi serve sapere se esiste una funzione che mi restituisca la data odierna.
Ho fatto un po' di ricerche e ho visto che esiste la libreria time.h, ma non riesco a trovare nulla sulla funzione che mi serve!
Potete aiutarmi?

4 Risposte

  • Re: Libreria gestione tempo

    Ciao,
    se guardi qui: trovi l'elenco completo delle funzioni.

    In pratica devi usare qualccosa del tipo:
    
    asctime(localtime(time)));
    
    La data credo ti venga restituita in un formato dipendente dal compilatore, quindi in generale nel formato inglese.
    Potresti però informarti sui membri della struct tm in modo da crearti tu una funzione che ti stampi la data in formato italiano (anche se non è banale).

    ciao
  • Re: Libreria gestione tempo

    dvaosta ha scritto:


    Ciao,
    se guardi qui: trovi l'elenco completo delle funzioni.

    In pratica devi usare qualccosa del tipo:
    
    asctime(localtime(time)));
    
    La data credo ti venga restituita in un formato dipendente dal compilatore, quindi in generale nel formato inglese.
    Potresti però informarti sui membri della struct tm in modo da crearti tu una funzione che ti stampi la data in formato italiano (anche se non è banale).

    ciao
    Ciao, mi puoi fare un esempio? Nel senso, mi puoi compilare un mini programma in C++ con questa funzione, così da farmi capire come funziona?
  • Re: Libreria gestione tempo

    In linguaggio C si può fare una cosa del genere, utilizzando la libreria time.h, ma forse esiste qualcosa di diverso per il C++ ( anche se dovrebbe compilare comunque):
    
    #include <stdio.h>
    #include <time.h>
    
    char *mesi[] = {"Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno",
              "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"};
    
    char *giorni[] = {"Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"};
    
    int main()
    {
    time_t rawtime;
    time (&rawtime);
    struct tm* leggibile;
    leggibile = localtime(&rawtime);
    printf("Ora: %d:%d:%d\n",leggibile->tm_hour,leggibile->tm_min,leggibile->tm_sec);
    printf("Data: %d %s %d\n",leggibile->tm_mday,mesi[leggibile->tm_mon],leggibile->tm_year+1900);
    printf("Giorno della settimana: %s\n", giorni[leggibile->tm_wday]);
    printf("Giorno dell'anno: %d\n", leggibile->tm_yday + 1);
    if (leggibile->tm_isdst >= 0)
        { /* NB: se leggibile->tm_isdst < 0 non ci sono informazioni sull'ora legale */
        printf("Ora legale: %s\n", (leggibile->tm_isdst)? "attiva" : "non attiva");
        }
    return 0;
    }
    
  • Re: Libreria gestione tempo

    Light ha scritto:


    In linguaggio C si può fare una cosa del genere, utilizzando la libreria time.h, ma forse esiste qualcosa di diverso per il C++ ( anche se dovrebbe compilare comunque):
    
    #include <stdio.h>
    #include <time.h>
    
    char *mesi[] = {"Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno",
              "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"};
    
    char *giorni[] = {"Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"};
    
    int main()
    {
    time_t rawtime;
    time (&rawtime);
    struct tm* leggibile;
    leggibile = localtime(&rawtime);
    printf("Ora: %d:%d:%d\n",leggibile->tm_hour,leggibile->tm_min,leggibile->tm_sec);
    printf("Data: %d %s %d\n",leggibile->tm_mday,mesi[leggibile->tm_mon],leggibile->tm_year+1900);
    printf("Giorno della settimana: %s\n", giorni[leggibile->tm_wday]);
    printf("Giorno dell'anno: %d\n", leggibile->tm_yday + 1);
    if (leggibile->tm_isdst >= 0)
        { /* NB: se leggibile->tm_isdst < 0 non ci sono informazioni sull'ora legale */
        printf("Ora legale: %s\n", (leggibile->tm_isdst)? "attiva" : "non attiva");
        }
    return 0;
    }
    
    Grazie, grazie mille! L'ho modificato in base alle mie esigenze ed ecco il risultato in C++:
    #include <iostream>
    #include <time.h>
    #include <cstdlib>
    using namespace std;
    int mesi;
    int giorni;
    int main()
    {
    time_t rawtime;
    time (&rawtime);
    struct tm* leggibile;
    leggibile = localtime(&rawtime);
    cout<<"Ora: "<<leggibile->tm_hour<<":"<<leggibile->tm_min<<":"<<leggibile->tm_sec<<"\n";
    cout<<"Data: "<<leggibile->tm_mday<<":"<<leggibile->tm_mon+1<<":"<<leggibile->tm_year+1900<<"\n";
    cout<<"Giorno della settimana: "<<leggibile->tm_wday<<"\n";
    cout<<"Giorno dell'anno: "<<leggibile->tm_yday + 1<<"\n";
    return 0;
    }
    Lascio la mia versione compilata e funzionante nel caso servisse a qualcun altro!
    Ciau!
Devi accedere o registrarti per scrivere nel forum
4 risposte