Date in C

di il
7 risposte

Date in C

Buongiorno, sto facendo un programma C in grado di restituire l'età media delle persone data la data di nascita.
Non capisco come salvare le date di nascita in una struttura del genere:
struct tm {
    int tm_sec;     // Secondi:                da 0 a 60.
    int tm_min;     // Minuti:                 da 0 a 59.
    int tm_hour;    // Ora:                    da 0 a 23.
    int tm_mday;    // Giorno del mese:        da 1 a 31.
    int tm_mon;     // Mese dell'anno:         da 0 a 11.
    int tm_year;    // Anno dal 1900.
    int tm_wday;    // Giorno della settimana: da 0 a 6
                    // con lo zero corrispondente alla domenica.
    int tm_yday;    // Giorno dell'anno:       da 0 a 365.
    int tm_isdst;   // Ora estiva. Contiene un valore positivo
                    // se è in vigore l'ora estiva; zero se l'ora
                    // è quella «normale» ovvero quella invernale;
                    // un valore negativo se l'informazione non è
                    // disponibile.
};

Qualcuno potrebbe spiegarmi cosa sto sbagliando?
Esiste qualche tipo speciale di variabile dove salvare le date?
Se si, potreste farmi degli esempi del suo utilizzo?

Grazie

7 Risposte

  • Re: Date in C

    Qualcuno potrebbe spiegarmi cosa sto sbagliando?
    Nessuno, se non mostri quello che hai fatto e gli errori che hai riscontrato.
    Esiste qualche tipo speciale di variabile dove salvare le date?
    Se si, potreste farmi degli esempi del suo utilizzo?
    No, ci sono solo delle strutture, della libreria standard come hai già trovato tu oppure potresti definire la tua propria struttura.
    Se vuoi usare struct tm, resettala tutta a 0 e poi carichi solo i dati che ti interessano, ovvero giorno, mese e anno.
  • Re: Date in C

    Potresti spegarmi come dichiarare una struttura struct tm?
    Inoltre, come posso accedere solo a giorno, mese, anno?
  • Re: Date in C

    Qui c'è un esempio completo http://www.w3ii.com/it/c_standard_library/c_function_mktime.html
    Il punto, comunque, è come intendi calcolare l'età media: ti interessano solo gli anni (compiuti) o vuoi essere più preciso verificando anche mese e giorno?
  • Re: Date in C

    Grazie,
    mi interessano solo gli anni.
    Pensavo di sommare tutti gli anni di nascita e dividere per il numero di persone.
    Non penso sia una grande idea, però.
    Magari esiste un modo più elegante?
  • Re: Date in C

    In questo caso ti suggerisco di scrivere una funzione che date in input due date calcoli il numero di anni passati. E questo é il cuore della tua applicazione.
    Poi il programma é semplice:
    - input data odierna e le tre date di nascita
    - calcolo delle tre età compiute
    - media
  • Re: Date in C

    Nulla ti vieta di usare il sempiterno UNIX TIME, cioè una variabile intera per ogni data.
  • Re: Date in C

    Nulla ti vieta di usare il sempiterno UNIX TIME, cioè una variabile intera per ogni data.
    Era proprio quello che volevo proporre inizialmente , per avere una media "precisa" delle età.
    Tuttavia l'OP ha confermato che gli interessa lavorare con le età in termini di anni "compiuti" e, in questo caso, credo sia più corretto (oltre che comodo) lavorare con anno-mese-giorno.
Devi accedere o registrarti per scrivere nel forum
7 risposte