|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Oct 2011
Messaggi: 9
|
Stabilire il giorno della settimana
Salve, dovrei fare un programma in C++ che: "data una data (ad esempio 1-5-1988), stabilire il giorno della settimana relativo a quella data." Su internet ho trovato questa formula: "x = N + (q)(N - 1) : 4 - (q)(N - 1) : 100 + (q)(N - 1) : 400 + t"
successivamente bisognerà trovare il resto della divisone, x : 7, che sarà un numero compreso tra 0 e 6, ognuno di essi corrispondente ad un giorno della settimana (da sabato a venerdì). Il mio problema sta nella parte finale della prima formula, dove "t" rappresenta il numero di giorni trascorsi dall'inizio dell'anno fino al giorno stesso. Ho provato un ciclo for, ma non saprei come impostarlo, inoltre bisognerebbe mettere che se: "(N-1): 4" ha resto 0, l'anno è bisestile. Grazie mille ![]() P.s (q) significa che bisogna prendere soltanto la parte intera. Ultima modifica di Rootnight : 31-03-2013 alle 14:22. |
![]() |
![]() |
![]() |
#2 |
Junior Member
Iscritto dal: Apr 2013
Città: Tirano
Messaggi: 1
|
Per stabilire t puoi usare questo algoritmo:
- calcolo se l'anno è bisestile o no, se si metto in una variabile 1, altrimenti 0 (bisestile = divisibile x 400 oppure divisibile x 4 ma non per 100) - calcolo i giorni passati dall'inizio dell'anno SE si trattasse di un anno economico (12 mesi x 30 giorni = 360 giorni totali) - faccio, a parte, il calcolo di quanti giorni ci sono di differenza tra anno economico e anno solare per ogni mese,assumendo anno non bisestile (es: gennaio=0, febbraio=1, marzo=-1,aprile=0,...) - aggiungo la variabile iniziale per l'anno bisestile
__________________
Follow me on Twitter! https://twitter.com/luigibana96 |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Oct 2011
Messaggi: 9
|
Salve , scusa il ritardo. Grazie mille
![]() Codice:
#include<iostream> int main() { using namespace std; int n1,n2,n3,x=0,t; int mesi[13] ={1,31,59,90,120,151,181,212,243,273,304,334,365}; cout << "Inserire il giorno: "; cin >> n1; cout << "Mese: "; cin >> n2; cout << "Anno: "; cin >> n3; if(n3 > 1582) { x = n3 + (n3-1)/4 - (n3-1)/100 + (n3 - 1)/400; t=n1+mesi[n2-1]; if(n2 > 2 && n3 % 4 == 0 && (n3 % 100 != 0 || n3 % 400 == 0)){ t+=1; } } else{ x = n3 + (n3-1)/4; t=n1+mesi[n2-1]; t-=2; if(n2 > 2 && n3 % 4 == 0 && (n3 % 100 != 0 || n3 % 400 == 0)){ t+=1; } } x+=t; x%=7; cout <<"Il "<< n1 << "-" << n2 << "-" << n3; switch(x){ case 0: cout << " era Sabato\n"; break; case 1: cout << " era Domenica\n"; break; case 2: cout << " era Lunedi\n"; break; case 3: cout << " era Martedi\n"; break; case 4: cout << " era Mercoledi\n"; break; case 5: cout << " era Giovedi\n"; break; case 6: cout << " era Venerdi\n"; break; } system("pause"); return 0; } |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:27.