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

    [C/C++]Differenza date

    Salve gente
    premesso che non ne so molto di c...
    dovrei fare un programma che mi calcoli la differenza in giorni tra due date...

    codice:
    #include "stdafx.h"
    #include <iostream.h>
    #include <stdio.h>
    
    bool bisestile(int bis){
       return (bis%4==0)&&(bis%100!=0)||(bis%400==0);
    }
    
    unsigned int data(unsigned int giorno1,unsigned int mese1,unsigned int anno1,unsigned int giorno2,unsigned int mese2,unsigned int anno2){
       unsigned int NUMERO_GIORNI_A=364;
       int ACCUMULATORE_GIORNI=0;
       while(anno1>anno2){
          ACCUMULATORE_GIORNI+=NUMERO_GIORNI_A;
          if(bisestile(anno1)) ACCUMULATORE_GIORNI++;
          anno1--;
       }
       while(anno2>anno1){
          ACCUMULATORE_GIORNI+=NUMERO_GIORNI_A;
          if(bisestile(anno2)) ACCUMULATORE_GIORNI++;
          anno2--;
       }
       if(mese1<=12&&mese2<=12) {
       if(mese1==1) mese1=31;
       if(mese1==2) mese1=28;
       if(mese1==3) mese1=31;
       if(mese1==4) mese1=30;
       if(mese1==5) mese1=31;
       if(mese1==6) mese1=30;
       if(mese1==7) mese1=31;
       if(mese1==8) mese1=31;
       if(mese1==9) mese1=30;
       if(mese1==10) mese1=31;
       if(mese1==11) mese1=30;
       if(mese1==12) mese1=31;
       if(mese2==2) mese2=28;
       if(mese2==1) mese2=31;
       if(mese2==3) mese2=31;
       if(mese2==4) mese2=30;
       if(mese2==5) mese2=31;
       if(mese2==6) mese2=30;
       if(mese2==7) mese2=31;
       if(mese2==8) mese2=31;
       if(mese2==9) mese2=30;
       if(mese2==10) mese2=31;
       if(mese2==11) mese2=30;
       if(mese2==12) mese2=31;}
       else cout << "Errore nella data"<< endl;
       if(mese1>=mese2) {ACCUMULATORE_GIORNI+=mese1-mese2;}
       else {ACCUMULATORE_GIORNI+=mese2-mese1;}
       if(giorno1>=giorno2) {ACCUMULATORE_GIORNI+=giorno1-giorno2;}
       else {ACCUMULATORE_GIORNI+=giorno2-giorno1;}
       return ACCUMULATORE_GIORNI;
    }
       
    void main(){
        unsigned int giorno1, mese1, anno1, giorno2, mese2, anno2;
       cout << "Inserisci il giorno della prima data(gg):" <<endl;
       cin >> giorno1;
       cout << "Inserisci il mese della prima data(mm):" << endl;
       cin  >> mese1;
       cout << "Inserisci l'anno della prima data(aaaa):" << endl;
       cin >> anno1;
       cout << "Inserisci il giorno della seconda data(gg):" <<endl;
       cin >> giorno2;
       cout << "Inserisci il mese della seconda data(mm):" << endl;
       cin  >> mese2;
       cout << "Inserisci l'anno della seconda data(aaaa):" << endl;
       cin >> anno2;
       cout << "La differenza tra le due date in giorni e' " << data(giorno1,mese1,anno1,giorno2,mese2,anno2) << endl;
    }
    Dov'è l'errore???? Vi ringrazio anticipatamente...

    Ps: Perdonate tutti quegli "if"

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Ok ... ma devi dire SE hai un errore e QUALE e' l'errore ... mica lo dobbiamo scoprire noi ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3

    Re: [C/C++]Differenza date

    Originariamente inviato da Ribaz
    Dov'è l'errore????
    Quale errore?
    Originariamente inviato da Ribaz
    Ps: Perdonate tutti quegli "if"
    Anziché quella serie di if puoi scrivere:
    Codice PHP:
    const int kDaysPerMonth []={
       
    312831303130313130313031
    };

    mese1 kDaysPerMonth [mese1 1];
    mese2 kDaysPerMonth [mese2 1]; 
    Naturalmente, dovresti anche tener conto degli anni bisestili.

  4. #4
    Dai un'occhiata alle funzioni contenute nell'header time.h (o ctime in C++).
    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.