GESTIONE DATE

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
Ga.Dima
00mercoledì 27 febbraio 2008 10:58
Ecco il programma di gestione della date fatto da:Loiudice,Cattabriga,Introna e dal sottoscritto.

Il programma è funzionante ma ampiamente migliorabile, quindi chi volesse puo modificarlo a piacimento per avere un risultato migliore.

Ciao
dragonet75
00sabato 1 marzo 2008 23:41
la mia versione
Questa è la mia versione. Forse ho trovato una soluzione troppo complessa, il programma è lungo e inizia a diventare difficile da leggere. Non funziona correttamente il calcolo dei giorni della settimana: vedete voi se riuscite a trovarmi l'errore.
Ga.Dima
00martedì 17 febbraio 2009 22:31
#include
#include
#include
#include
class calendario
{
public:
calendario();
calendario nascita(int giorno,int mese,int anno);
int conto_rovescia(int giorno_1,int mese_1,int anno_1,int giorno_2,int mese_2,int anno_2);
int giorni_vissuti(int giorno,int mese,int anno);
bool bis(int anno);
calendario pasqua(int anno);
void stampa_mese(int mese,int anno);

private:
int giorno,mese,anno,giono_s;
int mesi[12]={31,28,31,30,31,30,31,31,30,31,30,31};
}
calendario::calendario()
{
time_t tempo;
struct tm *data;
tempo = time(NULL);
data = localtime(&tempo);
giorno=data->tm_mday;
mese=data->tm_mon;
anno=data->tm_year;
giono_s=data->tm_wday;
}
calendario calendario::nascita(int giorno,int mese,int anno)
{
}
int calendario::conto_rovescia(int giorno_1,int mese_1,int anno_1,int giorno_2,int mese_2,int anno_2)
{
}
int calendario::giorni_vissuti(int giorno,int mese,int anno)
{
}
bool calendario::bis(int anno)
{
}
calendario calendario::pasqua(int anno)
{
}
void calendario::stampa_mese(int mese,int anno)
{
}
matto.mattia
00martedì 3 marzo 2009 22:03
algoritmo pasqua
#include
#include
#include
struct dataCal
{
int giorno;
int mese;
int anno;
};

struct dataCal pasqua(int anno)
{

int giorno, mese;
int a, b, c, d, e, m, n;
struct dataCal r;

switch(anno/100)
{
case 15: // 1583 - 1599 (FALL THROUGH)
case 16: // 1600 - 1699
m=22; n=2; break;

case 17: // 1700 - 1799
m=23; n=3; break;

case 18: // 1800 - 1899
m=23; n=4; break;

case 19: // 1900 - 1999 (FALL THROUGH)
case 20: // 2000 - 2099
m=24; n=5;break;

case 21: // 2100 - 2199
m=24; n=6; break;

case 22: // 2200 - 2299
m=25; n=0; break;

case 23: // 2300 - 2399
m=26; n=1; break;

case 24: // 2400 - 2499
m=25; n=1; break;
}

a=anno%19;
b=anno%4;
c=anno%7;
d=(19*a+m)%30;
e=(2*b+4*c+6*d+n)%7;
giorno=d+e;

if (d+e<10)
{
giorno+=22;
mese=3;
}

else
{
giorno-=9;
mese=4;

if ((giorno==26)||((giorno==25)&&(d==28)&&(e==6)&&(a>10)))
{
giorno-=7;
}
}

r.giorno=giorno;
r.mese=mese;
r.anno=anno;
return(r);
}

void main()
{
int anno;
struct dataCal r;
cout<<"inserire anno: ";
cin>>anno;
r=pasqua(anno);
printf("la pasqua cade il %02d-%02d-%d\n", r.giorno, r.mese, r.anno);
system("pause");
}
[SM=g18943] [SM=g18943] [SM=g18943] [SM=g18943] [SM=g18943] [SM=g18943] [SM=g18943] [SM=g18943] [SM=g18943] [SM=g18943] [SM=g18943]
Ga.Dima
00martedì 3 marzo 2009 22:31
algoritmo pasqua bis
#include
#include
#include
#include
main()
{
int anno,a,b,c,d,e,m,n,data;
int scelta,h;
do{
cout<<"inserisci anno\n";
cin>>anno;

if(anno>=1583&&anno<=1699)scelta=1;
if(anno>=1700&&anno<=1799)scelta=2;
if(anno>=1800&&anno<=1899)scelta=3;
if(anno>=1900&&anno<=2099)scelta=4;
if(anno>=2100&&anno<=2199)scelta=5;
if(anno>=2200&&anno<=2299)scelta=6;
if(anno>=2300&&anno<=2399)scelta=7;
if(anno>=2400&&anno<=2499)scelta=8;
switch(scelta)
{
case 1:m=22;
n=2;
break;
case 2:m=23;n=3;break;
case 3:m=23;n=4;break;
case 4:m=24;n=5;break;
case 5:m=24;n=6;break;
case 6:m=25;n=0;break;
case 7:m=26;n=1;break;
case 8:m=25;n=1;break;
}
a=anno%19;
b=anno%4;
c=anno%7;
d=(19*a+m)%30;
e=(2*b+4*c+6*d+n)%7;
if((d+e)<10)
{
data=d+e+22;
printf("la pasqua cade il %d di Marzo",data);

}
else
{
data=d+e-9;
if(data==26)
{
printf("la pasqua cade il 19 di Aprile");
}
if(data==25&&d==28&&e==6&&a>10)
{
printf("la pasqua cade il 18 di Aprile");
}
else
{
if(data!=26)printf("la pasqua cade il %d di aprile",data);
}
}
printf("\nvuoi rifare?\n");
cin>>h;
}while(h!=1);
getchar();
}
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 17:54.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com