Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Anno bisestile

Ciao a tutti.
C'è per caso una funzione in vb che restituisce un boolean che indica se un
anno, passato come paramentro, è bisestile?
Grazie,
Ciao ciao
-- 
Mattia un pò meno stacanovista...

"Mattia" <br...@NOSPAM.it> ha scritto nel messaggio
news:c91l4p$gm5$1...@newsread.albacom.net...

Puoi farla tu:
Function Bisestile(Anno As Long) As Boolean
    Dim MyDate As Date
    MyDate = DateSerial(Anno, 3, 1) - 1
    If Day(MyDate) = 29 Then
        Bisestile = True
    End If
End Function
Ciao
Galliano.

 se un anno, passato come paramentro, è bisestile?
Va beh ho risolto creandomi un array degli anni bisestili a partire dal
corrente fino al 2400, tanto penso che il prg non  verrà usato così a lungo
:-)
Posto il  codice se può servire a qualcuno...
Dim arrBisestili()
ReDim arrBisestili(1 To 100)
arrBisestili(1) = 2004
For i = 2 To 100
  arrBisestili(i) = arrBisestili(i - 1) + 4
Next
poi nella funzione scorro gli elementi dell'array e il gioco è fatto...


 Galliano.
Mattia.
-- 
Mattia un pň meno stacanovista...

 Galliano.
La tua funzione va bene , quella invece postata da mattia no perche ha
creato un array di anni bisestili ogni 4 anni non sapendo (forse) che 
un anno divisibile per 4 ne ha è bisestile · Un anno divisibile per 100
non è considerato bisestile · Un anno divisibile per 400 è invece
considerato bisestile
io invece utilizzerei semplicemente:
bisestile = IsDate("29/2/" & anno)
cosi da far fare al sistema operativo la verifica.
ciao
sasa
-- 
Diego: tutto il resto è noia!
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 così a lungo :-)
guarda che già il 2100 non sarà bisestile...
-- 
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 Next
...
Ok, ti ha gia' risposto fidirico, volevo solo dirti che in questo tuo
codice, non tieni conto di alcune regole.
Non ricordo esattamente tutto a memoria, pero' mi sembra che non siamo
bisestili gli anni di secolo (2100, 2200) , pero' lo sono quelli di
millennio (ed infatti il 2000 fu bisestile). A parte qualche errore ne
ricordare la regola, sicuramente non e' sufficiente tenere conto del salto
dei 4 anni, sempre che tu voglia far usare il tuo programma per qualche
centinaio di anni :-)))
Ciao...Maurizio

 Ciao...Maurizio
per la regola guarda il mio post di risposta a fidirico


 paramentro, è bisestile?
Public Function IsBisestile(ByVal aYear As String)
    IsBisestile = IsDate("29/02/" & aYear)
End Function
hth,
Lokar
-- 
Sito Comune: 
http://www.it-lang-vb.net/
Manifesto: 
http://www.it-lang-vb.net/docs/Manifesto.txt
Statuto: 
http://www.it-lang-vb.net/docs/Statuto.txt
UGIdotNET - 
http://www.ugidotnet.org

 Lokar
leggere i post prima no č???
:-)
sasa
-- 
Diego: tutto il resto č noia!


 leggere i post prima no č???
Mi sono accorto dopo che avevi postato lo stesso codice... ma non pensavo
che l'avessi anche gia' brevettato =P
Prendo atto =)


 che l'avessi anche gia' brevettato =P
perdonato
:-)
sasa
-- 
Diego: tutto il resto è noia!


Function isBisestile(anno as long) as boolean
'determino se l'anno è bisestile
isBisestile = False
If (anno Mod 4 = 0) And Not (anno Mod 100 = 0) Then
    isBisestile = True
Else
    If anno Mod 400 = 0 Then
        isBisestile = True
    End If
End If
End Function
"Mattia" <br...@NOSPAM.it> ha scritto nel messaggio
news:c91l4p$gm5$1...@newsread.albacom.net...


 ha scritto nel messaggio
news:0C2tc.21647$Wc.7...@twister2.libero.it...


 
Ho l'impressione che, scritta cosi', negli stati uniti non funzionerebbe 
molto bene...
Cosi' invece dovrebbe essere perfetta in tutto il mondo! ;-)
	IsBisestile = dateserial(aYear,2,29)<>dateserial(aYear,3,1)
ciao
	maxx
-- 
NOSPAM: Rimuovere i trattini dallo username!
Cut hyphens from my username!