Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [c++] differenza tra due date

    salve a tutti....
    il mio problema è quello di calcolare il numero di giorni che separano due date,sono riuscito a fare qualcosa usando la libreria ctime come nell'esempio riportato sotto ma da quello che ho capito posso gestire solo date a partire dal 1970.So che potrei scrivere un algoritmo per il calcolo dei giorni,ma vorrei sapere se dovrei usare qualche funzione predefinita adatta a questo tipo di problemi???

    GRAZIE!!

    #include <iostream>
    #include <ctime>
    using namespace std;
    void getdate(tm * timestruct);
    int main()
    {
    tm data1={0}, data2={0};
    time_t td1, td2;
    int diff;
    cout<<"Calcolo differenza date\n";
    cout<<"Inserire la prima data:\n";
    getdate(&data1);
    if((td1 = mktime(&data1)) == -1)
    {
    cerr<<"Data non valida\n";
    system ("pause");
    return 1;
    }
    cout<<"Inserire la seconda data:\n";
    getdate(&data2);
    if((td2 = mktime(&data2)) == -1)
    {
    cerr<<"Data non valida\n";
    system ("pause");
    return 1;
    }
    // abs ==> valore assoluto
    diff = abs(td1 - td2)/86400;
    cout<<"Differenza: "<<diff<<" giorni.\n";
    system ("pause");
    return 0;
    }
    void getdate(tm * timestruct)
    {
    cout<<"Anno: ";
    cin>>timestruct->tm_year;
    timestruct->tm_year-=1900;
    cout<<"Mese: ";
    cin>>timestruct->tm_mon;
    cout<<"Giorno: ";
    cin>>timestruct->tm_mday;
    timestruct->tm_isdst=-1;
    }

  2. #2
    Se devi fare lavori un minimo seri con le date ti consiglio di usare la libreria Boost Date Time.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.