|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
11-12-2008, 12.50.45 | #1 |
Sospeso
Registrato: 25-03-2008
Messaggi: 247
|
Anno Bisestile in EXCEL
io me ne sono costruita una con alcuni artifici, ma mi piacerebbe sapere se esiste già integrata nel set di istruzioni. se può interessare a qualcuno allego anche il codice della mia funzione. grazie se qualcuno risponderà. Function Bisestile(Anno) ' Restituisec VERO (1) se è bisestile, FALSO (0) se non è bisestile Data = "29/02/" & Anno If StrComp(Data, DateSerial(Anno, 2, 29)) = 0 Then ' DateSerial restituisce una data valida, Bisestile = 1 ' perciò se non esiste il 29 Febbraio allora restituisce 1 Marzo dell'anno passato Else Bisestile = 0 End If End Function Saluti - Riccardo |
11-12-2008, 14.52.25 | #2 |
Hero Member
Registrato: 14-01-2005
Loc.: Rome, Italy
Messaggi: 1.132
|
mi sembra ben fatta
potresti limitarla così MyDate = "29/02/2012" 'come hai scritto tu la costante cmq sarà 29/02 If IsDate(MyDate) Then MsgBox "E' bisestile" Else MsgBox "Non è bisestile" End If Ciao Alex
___________________________________
♫ m u s i c ♪ i s ♫ t h e ♪ a n s w e r ♫ "Il più piccolo dei piccoli felini è già lui stesso un vero capolavoro". (Leonardo da Vinci) Namasté! Ultima modifica di miciomao : 11-12-2008 alle ore 14.56.38 |
11-12-2008, 16.17.19 | #3 |
Sospeso
Registrato: 25-03-2008
Messaggi: 247
|
Effettivamente con l'istruzione suggerita da te, la funzione diventa più diretta, senza comparazioni artificiose; in pratica il programma prevede già che la data sia o non sia valida, che corrisponde a dire che l'anno è bisestile o no. La funzione assume questo aspetto più immediato ed elegante:
Function Bisestile(Anno) ' Restituisce VERO (1) se è bisestile, FALSO (0) se non è bisestile If IsDate("29/02/" & Anno) Then Bisestile = 1 Else Bisestile = 0 End If End Function Ti ringrazio per il tuo utile intervento. Per la cronaca: la funzione mi è servita per costruire un calendario annuale perpetuo in F.to A4, dove finalmente riesco a leggere i giorni; sui calendarietti tascabili non si legge niente! Basta cambiare l'anno e si ottiene automaticamente il calendario, senza la pretesa dei santi e delle lune che a me non interessano. Grazie ancora, ciao Riccardo |
11-12-2008, 16.32.25 | #4 |
Hero Member
Registrato: 14-01-2005
Loc.: Rome, Italy
Messaggi: 1.132
|
Una volta DateSerial IsDate DateDiff DateAdd e tante altre non esistevano.
Guarda questa che Sciccheria Public Function Bisestile(Anno As Integer) As Boolean 'Restituisce: true se l'anno è bisestile Bisestile = ((Anno Mod 4) = 0 And (Anno Mod 100)) Or (Anno Mod 400) = 0 End Function Ciao Alex
___________________________________
♫ m u s i c ♪ i s ♫ t h e ♪ a n s w e r ♫ "Il più piccolo dei piccoli felini è già lui stesso un vero capolavoro". (Leonardo da Vinci) Namasté! |
12-12-2008, 09.57.33 | #5 |
Sospeso
Registrato: 25-03-2008
Messaggi: 247
|
In realtà non restituisce Vero o Falso ma restituisce il resto della divisione al secolo intero, cioè: Bisestile(1996) restituisce 96, Bisestile(2052) restituisce 52, Bisestile(2008) restituisce 8, e così via; in tutti gli altri casi di anni non bisestili ovviamente restituisce 0; quindi con questa distinzione si intercetta l'anno bisestile (esattamente come Vero/Falso).
Questa ultima è sicuramente la funzione più elegante e di più "BASSO LIVELLO", dato che non ricorre ad alcun artificio, ma sfrutta la primaria definizione aritmetica di anno bisestile. GRAZIE: è stata una discussione molto interessante! Riccardo |
12-12-2008, 10.37.13 | #6 | |
Sospeso
Registrato: 25-03-2008
Messaggi: 247
|
Quota:
Riccardo |
|
12-12-2008, 11.48.09 | #7 | |
Sospeso
Registrato: 25-03-2008
Messaggi: 247
|
Quota:
Quindi ho condiviso in altro forum di Excel/Vba questa soluzione, dichiarando onestamente che non era farina del mio sacco, ma un suggerimento recepito in questo forum. La logica e l'interesse è quello di condividere col massimo numero di utenti possibile, la cultura acquisita. Spero che questo appartenga ad un comportamento etico e generoso; comunque è con questo spirito che io agisco e non con la volontà di "rubare" ad alcuno gli interessanti suggerimenti che riesco a "fare miei". Grazie ancora a tutti. Riccardo |
|
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
Strumenti discussione | |
|
|
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
Free Word password / Excel password recovery | crazy.cat | Segnalazioni Web | 4 | 03-03-2012 15.27.53 |
Trasformare Tabelle Excel o SQL in pardox o DB3 | bepi | Programmazione | 0 | 10-12-2008 23.53.36 |
Excel 2000 - apertura files | kukla | Office suite | 0 | 24-05-2007 15.47.27 |
Microsoft Office Compatibility Pack per formati di file Word, Excel e PowerPoint 2007 | crazy.cat | Segnalazioni Web | 0 | 19-01-2007 16.09.52 |
dimensione File EXCEL | giobaxx | Office suite | 1 | 31-01-2006 22.34.59 |