Telefonino.net network
 
| 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 » |

Torna indietro   WinTricks Forum > Software > Office suite

Notices

Rispondi
 
Strumenti discussione
Vecchio 11-12-2008, 12.50.45   #1
riccardonard
Sospeso
 
Registrato: 25-03-2008
Messaggi: 247
riccardonard promette bene
Anno Bisestile in EXCEL

Esiste una funzione in excel (e/o la corrispondente in vba), per determinare se un anno, passato come parametro alla funzione, è bisestile?
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
riccardonard non è collegato   Rispondi citando
Vecchio 11-12-2008, 14.52.25   #2
miciomao
Hero Member
 
L'avatar di miciomao
 
Registrato: 14-01-2005
Loc.: Rome, Italy
Messaggi: 1.132
miciomao promette bene
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
miciomao non è collegato   Rispondi citando
Vecchio 11-12-2008, 16.17.19   #3
riccardonard
Sospeso
 
Registrato: 25-03-2008
Messaggi: 247
riccardonard promette bene
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
riccardonard non è collegato   Rispondi citando
Vecchio 11-12-2008, 16.32.25   #4
miciomao
Hero Member
 
L'avatar di miciomao
 
Registrato: 14-01-2005
Loc.: Rome, Italy
Messaggi: 1.132
miciomao promette bene
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é!
miciomao non è collegato   Rispondi citando
Vecchio 12-12-2008, 09.57.33   #5
riccardonard
Sospeso
 
Registrato: 25-03-2008
Messaggi: 247
riccardonard promette bene
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
riccardonard non è collegato   Rispondi citando
Vecchio 12-12-2008, 10.37.13   #6
riccardonard
Sospeso
 
Registrato: 25-03-2008
Messaggi: 247
riccardonard promette bene
Quota:
Inviato da riccardonard
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
Mi correggo: ho detto una sciocchezza perché avevo dimenticato di scrivere "As Boolean"; con questa precisazione in valore restituito è effettivamente Vero/Falso, e non il resto della divisione. Restano inalterate tutte le altre considerazioni.
Riccardo
riccardonard non è collegato   Rispondi citando
Vecchio 12-12-2008, 11.48.09   #7
riccardonard
Sospeso
 
Registrato: 25-03-2008
Messaggi: 247
riccardonard promette bene
Quota:
Inviato da riccardonard
Mi correggo: ho detto una sciocchezza perché avevo dimenticato di scrivere "As Boolean"; con questa precisazione in valore restituito è effettivamente Vero/Falso, e non il resto della divisione. Restano inalterate tutte le altre considerazioni.
Riccardo
Debbo ancora precisare per correttezza che io faccio tesoro dei suggerimenti interessanti e, non solo li applico ai miei programmi, ma li ri-suggerisco anche ad altri, in altri forum ai quali partecipo, quando ho qualche cosa di interessante da dire.
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
riccardonard non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

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

Orario GMT +2. Ora sono le: 08.50.18.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.