Article View: be.comp.programming
Article #16414Oefening op de geneste lus met oplossing!
From: Marc Vandenbussche
Date: Sat, 06 May 2000 00:00
Date: Sat, 06 May 2000 00:00
100 lines
4418 bytes
4418 bytes
Beste,
Het moet kunnen dat we niet alleen vragen stellen maar ook eens een
volledige oefening (Hier in VB6 Professional) met code ter beschikking
stellen van ge�nteresseerden.
1.Wat doet dit programma ?
Een klein programma berekent tussen 1 januari 1904 en 2009 het aantal
schrikkeldagen. De schrikkeldagen in de laatste eeuwen zijn de jaartallen
deelbaar door 4. De eeuwtallen moeten deelbaar door 400 zijn.
Jaartallen deelbaar door 4 : 1904, 1908, 1912, 1916 enz...
Eeuw deelbaar door 400 : 2000
Eeuw niet deelbaar door 400 : 1900
[In bijlage - als attachment - vind u een Word 97 document. Tevens in
bijlage
hebt u het programma zelf.] Tijdelijk krijg ik mijn mail met bijlagen niet
doorgestuurd. Daar ik ge�nteresseerden niet langer wil laten wachten stuur
ik deze mail door.
De bedoeling is dat u deze oefening zelf na maakt maar dan niet van 1
janurai 1904 tot 2004 maar van 1 janurari 1800 tot 2100. Denk hierbij goed
aan de theorie van de schrikkeldagen.
2) In welke programmeertalen?
Deze oefening kan zowel in Visual Basic for Applications als in Visual Basic
gemaakt worden. Ook in tal van andere programmeertalen kan je deze oefening
maken. Slechts in VBA en VB zal de code identiek zijn.
3) De code
Vba\oplossing schrikkeldagenberekening
Public Vi_Jaaraankoop As Integer
Public Vi_Verkoopjaar As Integer
Public Vi_Schrikkeldag As Integer
Public Vd_Verkoopdatum As Date
Public Vd_Aankoopdatum As Date
' De berekening schijnt ook na controle correct !
Private Sub Cmd_Berekenen_Click()
Vd_Aankoopdatum = CDate(TextBox1.Value)
Vd_Verkoopdatum = CDate(TextBox2.Value)
Vi_Jaaraankoop = CInt(Year(Vd_Aankoopdatum))
Vi_Verkoopjaar = CInt(Year(Vd_Verkoopdatum))
Txt_Resultaat.Value = Vd_Verkoopdatum - Vd_Aankoopdatum
Call Schrikkeldagenberekening
Txt_Aantalschikkeldagen.Value = Vi_Schrikkeldag
Txt_Totaaldagen = Txt_Resultaat.Value
End Sub
Sub Schrikkeldagenberekening()
' Berekening van het totale aantal schikkeldagen die zich tussen
' 2 datums bevinden.
Dim Vi_Schrikkeljaar As Integer
Vi_Schrikkeldag = 0
Vi_Schrikkeljaar = 1904
For Vi_Schrikkeljaar = 1904 To 2010
If (Vi_Jaaraankoop = Vi_Schrikkeljaar And Month(Vd_Aankoopdatum) <= 2 And
Vi_Schrikkeldag <> 0) And _
(Vi_Schrikkeljaar < Vi_Verkoopjaar Or (Vi_Schrikkeljaar = Vi_Verkoopjaar
And Month(Vd_Verkoopdatum) > 2)) Then
Vi_Schrikkeldag = Vi_Schrikkeldag + 1
'Vi_Schrikkeljaar = Vi_Schrikkeljaar + 3
End If
If (Vi_Jaaraankoop < Vi_Schrikkeljaar And Vi_Schrikkeldag > 0) And _
(Vi_Schrikkeljaar < Vi_Verkoopjaar Or (Vi_Schrikkeljaar = Vi_Verkoopjaar And
Month(Vd_Verkoopdatum) > 2)) Then
Vi_Schrikkeldag = Vi_Schrikkeldag + 1
'Vi_Schrikkeljaar = Vi_Schrikkeljaar + 3
End If
If (Vi_Jaaraankoop = Vi_Schrikkeljaar And Month(Vd_Aankoopdatum) <= 2 And
Vi_Schrikkeldag = 0) And _
(Vi_Schrikkeljaar < Vi_Verkoopjaar Or (Vi_Schrikkeljaar = Vi_Verkoopjaar
And Month(Vd_Verkoopdatum) > 2)) Then
Vi_Schrikkeldag = Vi_Schrikkeldag + 1
'Vi_Schrikkeljaar = Vi_Schrikkeljaar + 3
End If
If (Vi_Jaaraankoop < Vi_Schrikkeljaar And Vi_Schrikkeldag = 0) And _
(Vi_Schrikkeljaar < Vi_Verkoopjaar Or (Vi_Schrikkeljaar = Vi_Verkoopjaar And
Month(Vd_Verkoopdatum) > 2)) Then
Vi_Schrikkeldag = Vi_Schrikkeldag + 1
'Vi_Schrikkeljaar = Vi_Schrikkeljaar + 3
End If
Vi_Schrikkeljaar = Vi_Schrikkeljaar + 3
Next Vi_Schrikkeljaar
End Sub
Indien iets niet volledig duidelijk is mag u mailen naar onderstaand adres.
Geen attachments toevoegen anders wordt uw bestand onmiddellijk gewist nog
voor ik ze open. Dit adres mag niet gebruikt worden voor SPAM !!!
marc.vandenbusschexNOSPAM@euronet.be
Technical Details
Message-ID:
<8f3584$dnl$1@buty.wanadoo.nl>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII X-Google-Thread: fcea4,1c4738e54ab8118b,start X-Google-Attributes: gidfcea4,public From: "Marc Vandenbussche" <marc.vandenbussche@euronet.be> Subject: Oefening op de geneste lus met oplossing! Date: 2000/05/06 Message-ID: <8f3584$dnl$1@buty.wanadoo.nl> X-Deja-AN: 620200289 X-Priority: 3 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 X-Complaints-To: The appropriate party according to NNTP-Posting-Host: X-Trace: buty.wanadoo.nl 957683781 14069 212.65.43.240 (7 May 2000 07:16:21 GMT) Organization: EuroNet Internet X-MSMail-Priority: Normal NNTP-Posting-Date: 7 May 2000 07:16:21 GMT Newsgroups: be.comp.programming