considerazioni su anno bisestile

esercitazione con funzione DateSerial , Month e
applicata a ricerca e controllo anno bisestile
confronto dei due metodi:divisibilità e DateSerial
nota: se divisibile per 4 , e nel caso sia anno secolare,
che termina con 00, risulta divisibile anche per 400
http://digilander.libero.it/francescovise/visualpre/visapre.htm
http://digilander.libero.it/francescovise/visualpre/bisestile6.htm

considerazioni su
anno bisestile e suo riconoscimento mediante due metodi diversi


anno bisestile
condizioni:deve essere pari,divisibile per 4, divisibile anche per
400 se secolare( xx00...1200,1600,2000 si ....1300,1400,1500 no)
prova:
vedi se divisibile per 4 ? resto4=anno mod 4 = 0 >> si
vedi se divisibile per 100 ?resto100=anno mod 100 =0 >> si
vedi se edivisibile per 400 :?resto400=anno mod 400 = 0 >> si

risulta bisestile, altrimenti non bisestile
if resto4=0 then possibile bisestile
if resto4=0 and resto100=0 and resto400=0 :bisestile
if resto4=0 and resto100=0 and resto400<>0 :non bisestile

anno bisestile possiede data 2/29/anno dopo data 2/28/anno
se aggiungo 1 giorno alla data 2/28/anno e ottengo 2/29/anno vuol dire che anno=bisestile
se ottengo invece 3/1/anno (cambio mese) significa che anno <> bisestile

nella listbox1 a sinistra si visualizzano risultati in funzione del primo metodo
nella listbox2 a destra si visualizzano( e confrontano) risultati con DateSerial





rem codice per calcolo con primo
metodo

Private Sub CommandButton1_Click()
Dim resto4, resto100, resto400 As Integer
Dim anno As Integer
anno = TextBox1.Value
ListBox1.AddItem ("anno da verificare=" & anno)
resto4 = anno Mod 4
resto100 = anno Mod 100
resto400 = anno Mod 400
If resto4 = 0 Then
ListBox1.AddItem ("possibile bisestile:divisibile per
4")
Else
ListBox1.AddItem ("non bisestile:non divisibile per 4")
End If
If resto4 = 0 And resto100 = 0 And resto400 = 0 Then
ListBox1.AddItem ("anno bisestile:divisibile per 4 e per
400")
Else
If resto4 = 0 And resto100 = 0 And resto400 <> 0 Then
ListBox1.AddItem ("non bisestile:divisibile per 4 ma non per
400")
End If
End If
ListBox1.AddItem ("—————")
Rem conferma con altro metodo che usa DateSerial
verifica (anno)
End Sub

Private Sub CommandButton2_Click()
TextBox1 = ""
End Sub

Private Sub CommandButton3_Click()
TextBox1 = ""
ListBox1.Clear
ListBox2.Clear
End Sub

rem ricerca se anno bisestile
usando funzione DateSerial

Private Function verifica(anno As Integer) As Boolean
Dim data As Date
Dim mese2 As Integer
data = DateSerial(anno, 2, 28)
data = data + 1
mese2 = Month(data)
If Month(data) = 2 Then
verifica = True
ListBox2.AddItem (data & " bisestile " &
Month(data))
Else
verifica = False
ListBox2.AddItem (data & " non bisestile " &
Month(data))
End If
End Function

bisestile6.ppt


Informazioni su fumarino

interessato ad argomenti scientifici, ambienti naturali, parchi e monti
Questa voce è stata pubblicata in informatica. Contrassegna il permalink.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...