[VB] Berekenen dag van week

Pagina: 1
Acties:
  • 164 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

Anoniem: 81237

Topicstarter
Ik heb een code nodig die kan berekenen op welke dag van de week je jarig bent. De code moet aan de hand van 3 textboxen (1 textbox is voor je geboortejaar, 1 voor je geboortemaand en 1 voor je geboortedag van de week) kunnen berekenen welke dag je jarig bent. Heeft iemand een idee, ik heb echt geen idee waar ik moet beginnen. Hoop dat ik het een beetje duidelijk heb uitgelegd
Ohja hij moet ook meteen weergeven of het een schrikkeljaar is of niet hoop dat jullie me kunnen helpen

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Tuurlijk willen we je helpen.. :) Wat heb je tot nu toe al bedacht aan code? Hoe ver ben je tot nu toe al? Wat voor gedachtenspinsels heb je gehad?

Graag geven we hints, opmerkingen en suggesties, kortom, alle info die je nodig hebt zodat je zelf je code kan optimaliseren.

[ Voor 65% gewijzigd door gorgi_19 op 19-03-2003 09:56 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Anoniem: 81237

Topicstarter
Function IsLeapYear(intYear As Integer)
IsLeapYear = False
If intYear Mod 4 = 0 Then
If intYear Mod 400 = 0 Then
IsLeapYear = True
ElseIf intYear Mod 100 > 0 Then
IsLeapYear = True
End If
End If
End Function

Private Sub Command1_Click()
If IsLeapYear(CInt(InputBox("Enter Year"))) Then
MsgBox "schrikkeljaar"
Else
MsgBox "geen schrikkeljaar"
End If
End Sub

Acties:
  • 0 Henk 'm!

  • Exterazzo
  • Registratie: Mei 2000
  • Laatst online: 07:30

Exterazzo

Qeasy

Bedenk wel dat het geen makkelijk karwei is. Maar ik meen me te herinneren dat er een functie is in visual basic die daar wel bij kan helpen. Iets van DayOfYear.

edit: ik kan het nu niet opzoeken want ik heb MSDN niet geinstalleerd. Misschien moet je zelf even zoeken op http://msdn.microsoft.com en dan ff zoeken op DayOfYear of DayOfWeek

[ Voor 36% gewijzigd door Exterazzo op 19-03-2003 09:58 ]

Audentia


Acties:
  • 0 Henk 'm!

Anoniem: 38469

Anoniem: 81237 schreef op 19 March 2003 @ 09:56:
Function IsLeapYear(intYear As Integer)
IsLeapYear = False
If intYear Mod 4 = 0 Then
If intYear Mod 400 = 0 Then
IsLeapYear = True
ElseIf intYear Mod 100 > 0 Then
IsLeapYear = True
End If
End If
End Function
Ik ben niet zo goed in VB, maar volgens mij werkt dit beter:
NB: Bij mijn weten is het elke 4 jaar schrikkeljaar (dus ook elke 400 of 100 x 4 jaar).

Visual Basic:
1
2
3
Function IsLeapYear(intYear As Integer)
   IsLeapYear = ((intYear Mod 4) = 0)
End Function

[ Voor 16% gewijzigd door Anoniem: 38469 op 19-03-2003 10:22 . Reden: code=vb ;) ]


Acties:
  • 0 Henk 'm!

Anoniem: 13317

Schrijf eerst een code die de input van de gebruiker veriefieert, dag-jaar-maand.

Statements:
IsNumeric(Expression) as Boolean
If .. then .. else ... end if

En je dimensioneert een constante als de dag waarop 1 januari 1900 op viel.
(1=Ma 2=Di 3=Wo 4=Do 5=Vr 6=Za 7=Zo; Kun je in een listbox zetten)

Dan kun je met een ingewikkelde functie het aantal dagen bij elkaar optellen in een integer, als je dat gedaan hebt deel je dat door het aantal weken en je hebt de dag van de week, dit vervang je door de tekst in de lijst, of je zet het in een Select-Case functie en het werkt.


Misschien moet je ff de FAQ lezen
Of de Quick Start

[ Voor 64% gewijzigd door Anoniem: 13317 op 19-03-2003 10:16 ]


Acties:
  • 0 Henk 'm!

  • Jerry
  • Registratie: September 2001
  • Laatst online: 09-04-2022

Jerry

Who?

Je wilt de dag van de week bepalen, maar je geeft code voor een schrikkeljaar :?
Maar goed ik heb laatst nog een functie gemaakt om de dag te bepalen :).

Visual Basic:
1
2
3
4
5
Function DagVanDatum(datum As String) as String
    Dim strtekst As String
    strtekst = Format(datum, "dddd")
    DagVanDatum = strtekst
End Function


Je geeft de datum op als bv: "01-01-2003".
Dus dat wordt:
Visual Basic:
1
2
String dag
dag = DagVanDatum("01-01-2003")

Specs
Youtube celebrity
D3 Crusader


Acties:
  • 0 Henk 'm!

Anoniem: 13317

Mr_UnAnimouS schreef op 19 maart 2003 @ 10:10:
Je wilt de dag van de week bepalen, maar je geeft code voor een schrikkeljaar :?
Maar goed ik heb laatst nog een functie gemaakt om de dag te bepalen :).

[..]
Je geeft de datum op als bv: "01-01-2003".
[..]
offtopic:
Laat hem nu eerst zelf maar wat doen, hij heeft tot nu toe nog niets laten zien waaruit blijkt dattie er zelf wat aan heeft gedaan. Laat hem eerst zelf maar ff zwoegen OK?!

[ Voor 23% gewijzigd door Anoniem: 13317 op 19-03-2003 10:19 ]


Acties:
  • 0 Henk 'm!

Anoniem: 38469

Ik hoop dat je jezelf een beetje wegwijs kan maken in Java. Deze code berekent op welke dag van de week een willekeurige dag in dit jaar valt. Je hoeft alleen nog maar het jaar in te stellen, en te berekenen welke dag van het jaar de verjaardag valt ~ (dag + (maand * 30)).
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package myprojects.dagjaar;

class DagJaar {
    
    public DagJaar() {
    }

    public static void main(String args[]) {
        DagJaar tmpDagJaar = new DagJaar();

        for (int thisDay = 1; thisDay < 8; thisDay ++) {
            System.out.println(tmpDagJaar.toString(thisDay));
        }
    }

    private int lastYear = 2003 - 1;
    private int dayOfWeek;
    private String[] dayOfWeekStr = {
                        "Zaterdag",
                        "Zondag",
                        "Maandag",
                        "Dinsdag",
                        "Woensdag",
                        "Donderdag",
                        "Vrijdag",
                        "?"};

    private void setDayOfWeek(int dayOfWeek) {
        if ((dayOfWeek >= 1) && (dayOfWeek <= 7)) {
            this.dayOfWeek = dayOfWeek - 1;
        } else {
            this.dayOfWeek = dayOfWeekStr.length - 1;
        }       
    }

    public void getDayOfWeek(int dayOfYear) {
        if ((dayOfYear >= 1) && (dayOfYear <= 366)) {
            int tmpDaysOfYears = (365 * lastYear) + (int)(lastYear / 4);
            setDayOfWeek(((tmpDaysOfYears + dayOfYear) % 7) + 1);
        } else {
            setDayOfWeek(0);
        }
    }

    public String toString(int dayOfYear) {
        getDayOfWeek(dayOfYear);
        return toString();
    }

    public String toString() {
        return dayOfWeekStr[dayOfWeek];
    }
}

[ Voor 6% gewijzigd door Anoniem: 38469 op 19-03-2003 10:22 ]


Acties:
  • 0 Henk 'm!

  • raphidae
  • Registratie: Februari 2001
  • Laatst online: 06-01 13:36

raphidae

...antichrist...

Anoniem: 38469 schreef op 19 maart 2003 @ 10:05:
[...]


Ik ben niet zo goed in VB, maar volgens mij werkt dit beter:
NB: Bij mijn weten is het elke 4 jaar schrikkeljaar (dus ook elke 400 of 100 x 4 jaar).
Als een jaar deelbaar is door 4 dan is het een schrikkeljaar, behalve als het een millennium is (bijv. 2000) behalve weer als het jaar deelbaar is door 400.
Most years ending in "00" are not leap years, but those divisible by 400 (including 2000) are. The Julian calendar, authorized by Julius Caesar in 46 B.C., assumed that the year had 365 1/4 days, with a 366-day leap year added every fourth year.

In A.D. 730, an Anglo-Saxon monk, the Venerable Bede, calculated that the Julian year was 11 minutes and 14 seconds too long, an error of about one day every 128 years. But nothing was done about it for 800 years. In 1582, the accumulated error was estimated at 10 days, and Pope Gregory XIII decreed that the day following Oct. 4 would be Oct. 15.

To make future adjustments for the error (about three days every 400 years), it was decided that years ending in "00" would be common years rather than leap years -- except those divisible by 400.

So 1600 was a leap year and 2000 also will be, but 1700, 1800 and 1900 were not.

[ Voor 59% gewijzigd door raphidae op 19-03-2003 10:28 ]

Every morning is the dawn of a new error.


Acties:
  • 0 Henk 'm!

Anoniem: 60438

Anoniem: 38469 schreef op 19 March 2003 @ 10:05:
[...]


Ik ben niet zo goed in VB, maar volgens mij werkt dit beter:
NB: Bij mijn weten is het elke 4 jaar schrikkeljaar (dus ook elke 400 of 100 x 4 jaar).

Visual Basic:
1
2
3
Function IsLeapYear(intYear As Integer)
   IsLeapYear = ((intYear Mod 4) = 0)
End Function
helaas niet elk 4e jaar is een schrikkeljaar. ergens met de eeuwen zit het niet goed. daarom geloof ik die van Frank2kill.

Acties:
  • 0 Henk 'm!

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 13-02 14:20

Jaspertje

Max & Milo.. lief

Je kan ook eens zoeken op DatePart() Die functie is van VB (zelf in ASP gebruikt werkt goed.) Kijk daar ook eens naar.. en je kan zo klaar zijn..

http://msdn.microsoft.com...ceide/htm/function_21.asp

ik doe teveel :)

ASP.NET Visual Basic:
1
DatePart("w",Now()) 


dit geeft vandaag(woensdag) een 4je terug.. dan is het niet zo moeilijk meer..

[ Voor 54% gewijzigd door Jaspertje op 19-03-2003 10:31 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:38

.oisyn

Moderator Devschuur®

Demotivational Speaker

[nohtml]
raphidae schreef op 19 March 2003 @ 10:23:
[...]


Als een jaar deelbaar is door 4 dan is het een schrikkeljaar, behalve als het een millennium is (bijv. 2000) behalve weer als het jaar deelbaar is door 400.
geen milennium, maar eeuw. 1900 is bijvoorbeeld geen schikkeljaar. 2000 weer wel, omdat dat deelbaar is door 400
.edit: en dat staat dus ook heel mooi in je tekstje :P

[ Voor 7% gewijzigd door .oisyn op 19-03-2003 11:33 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Anoniem: 81237

Topicstarter
quote:
--------------------------------------------------------------------------------
Jerome81 schreef op 19 March 2003 @ 10:05:
[...]


Ik ben niet zo goed in VB, maar volgens mij werkt dit beter:
NB: Bij mijn weten is het elke 4 jaar schrikkeljaar (dus ook elke 400 of 100 x 4 jaar).


Visual Basic:
1
2
3

Function IsLeapYear(intYear As Integer)
IsLeapYear = ((intYear Mod 4) = 0)
End Function


--------------------------------------------------------------------------------

helaas niet elk 4e jaar is een schrikkeljaar. ergens met de eeuwen zit het niet goed. daarom geloof ik die van Frank2kill.
--------------------------------------------------------------------------------

ja, hierom had ik dit scriptje ook al zo geschreven

Acties:
  • 0 Henk 'm!

  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Met weekday wordt het ook automatisch uitgerekend...
code:
1
intDayOfWeek = WeekDay([de dag])


Krijg je een integer uit met de waarde 1 tot 7. 1= zondag 7=zaterdag...
met een select case of array kan je dan weer de naam van de dag er uit halen

Acties:
  • 0 Henk 'm!

Anoniem: 36971

misschien kun je hier wat mee Elke dag in de geschiedenis heeft een getal opgrond waarvan je de dag kunt bepalen.

http://scienceworld.wolfram.com/astronomy/JulianDate.html


succes

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:38

.oisyn

Moderator Devschuur®

Demotivational Speaker

Anoniem: 81237 schreef op 19 March 2003 @ 12:09:
ja, hierom had ik dit scriptje ook al zo geschreven


blijkbaar ben je nieuw hier. Basic forum-gebruik staat in de FAQ. Zo kun je een bericht quoten met het Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/got/images/icons/quote.gif-knopje, en je bericht wijzigen met het Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/got/images/icons/edit.gif-knopje

Code zet je tussen code-tags, met evt. de taal erbij: [code]...[/code] of [code=taal]...[/code]. De taal betreft in dit geval dus vb :)

Lees ook even de verplichte kost van Programming & Webscripting:
Welkom in P&W -> Quickstart (update 2/10/2002) en
Welkom in P&W (FAQ-19/02/2003)

veel plezier op GoT :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Anoniem: 81237

Topicstarter
zal wel lukken...

Acties:
  • 0 Henk 'm!

Anoniem: 81344

is het niet gewoon:

resultDay = WeekdayName(Weekday(DateAdd("YYYY", Year(Date) - Year(myDate), myDate)))

waarbij mydate dus je geboortedatum moet worden uit je formpje.

de resultday geeft netjes de dag aan.

Acties:
  • 0 Henk 'm!

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 06:25
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
dim datum, boolSchrikkeljaar, strWeekdag
datum = Request.Form("Dag") & "/" & Request.Form("Maand")
datum = datum & "/" & Request.Form("Jaar")
datum = CDate(datum)
IF (CInt(Request.Form("Jaar")) mod 4 = 0) THEN
   boolSchrikkeljaar = true
ELSE
   boolSchrikkeljaar = FALSE
END IF
SELECT CASE Weekday(datum)
   CASE 1: strWeekdag = "Zondag"
   CASE 2: strWeekdag = "Maandag"
   CASE 3: strWeekdag = "Dinsdag"
   CASE 4: strWeekdag = "Woensdag"
   CASE 5: strWeekdag = "Donderdag"
   CASE 6: strWeekdag = "Vrijdag"
   CASE 7: strWeekdag = "Zaterdag"
END SELECT

Acties:
  • 0 Henk 'm!

  • Mickman
  • Registratie: Juni 2001
  • Laatst online: 07-02 06:22
Fijn om te weten dat deze post al eerder is gebruikt op het forum van FOK!!!!
http://forum.fok.nl/showtopic.php/287713
Ik heb een code nodig die kan berekenen op welke dag van de week je jarig bent. De code moet aan de hand van 3 textboxen (1 textbox is voor je geboortejaar, 1 voor je geboortemaand en 1 voor je geboortedag van de week) kunnen berekenen welke dag je jarig bent. Heeft iemand een idee, ik heb echt geen idee waar ik moet beginnen. Hoop dat ik het een beetje duidelijk heb uitgelegd
Ohja hij moet ook meteen weergeven of het een schrikkeljaar is of niet hoop dat jullie me kunnen helpen.
Zal me niets verbazen als hij via fok de code ergens heeft opgesnuffeld en nu de werking er van hier uitgelegd wil krijgen!!! En dat laatste lukt trouwens redelijk goed. Maar waarom moeilijk doen als het makkelijk kan, calendar component

Acties:
  • 0 Henk 'm!

Anoniem: 81237

Topicstarter
ja, dat klopt , een maat van me heeft die gepost (die op fok) het is namenlijk een opdracht voor school, maar laat maar zitten, we hebben hem al voor het grootste gedeelte, alleen nog samenvoegen, debuggen en het script netjes maken
Pagina: 1