Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Manu

Anmeldungsdatum: 16.07.2006 Beiträge: 174 Wohnort: Bayern
|
Verfasst am: 28.10.2006, 11:38 Titel: Wochentag durch Datum abfragen? |
|
|
Hallo,
kann ich irgendwie abfragen wenn ich z.b. ein datum in einem string oder so gespeichert habe ob das jetzt ein sonntag oder ein donnerstag usw. ist?
danke
mfg Manu |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
|
Nach oben |
|
 |
Manu

Anmeldungsdatum: 16.07.2006 Beiträge: 174 Wohnort: Bayern
|
Verfasst am: 28.10.2006, 12:06 Titel: |
|
|
danke,
aber das programm funktioniert nur bis 2005
gibt es auch eins das bis 2010 oder so funktioniert?
danke
mfg Manu |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 28.10.2006, 12:42 Titel: |
|
|
Wieso? Das geht doch!
Code: |
'*******************************************************************
' WEEKDAY2.BAS = Calulates the day of week for a given date
' ============ Berechnet den Wochentag zu einem beliebigen Datum
'
' (c) DOUGLAS LUSHER, 1993
'******************************************************************
'
DECLARE FUNCTION DOW% (InDate$)
'
CLS
'
SELECT CASE DOW%(DATE$)
CASE 0: D$ = "Saturday / Samstag"
CASE 1: D$ = "Sunday / Sonntag"
CASE 2: D$ = "Monday / Montag"
CASE 3: D$ = "Tuesday / Dienstag"
CASE 4: D$ = "Wednesday / Mittwoch"
CASE 5: D$ = "Thursday / Donnerstag"
CASE 6: D$ = "Friday / Freitag"
END SELECT
'
PRINT "Today is "; D$; " , "; DATE$
SLEEP
END
'
'
FUNCTION DOW% (InDate$)
'returns a value representing the day of the week (0 = Saturday, 1 = Sunday,
'2 = Monday, etc) for the date string supplied in the form "MM-DD-YYYY"
'
Month% = (ASC(MID$(InDate$, 1)) - 48) * 10
Month% = Month% + (ASC(MID$(InDate$, 2)) - 48)
Day% = (ASC(MID$(InDate$, 4)) - 48) * 10
Day% = Day% + (ASC(MID$(InDate$, 5)) - 48)
Year% = (ASC(MID$(InDate$, 7)) - 48) * 1000
Year% = Year% + (ASC(MID$(InDate$, 8)) - 48) * 100
Year% = Year% + (ASC(MID$(InDate$, 9)) - 48) * 10
Year% = Year% + (ASC(MID$(InDate$, 10)) - 48)
Year% = Year% + (Month% < 3)
Temp& = (Year% * 365&) + (Year% \ 4) - (Year% \ 100) + (Year% \ 400)
'
SELECT CASE Month%
CASE 1: Temp& = Temp& + 365
CASE 2: Temp& = Temp& + 396
CASE 3: Temp& = Temp& + 59
CASE 4: Temp& = Temp& + 90
CASE 5: Temp& = Temp& + 120
CASE 6: Temp& = Temp& + 151
CASE 7: Temp& = Temp& + 181
CASE 8: Temp& = Temp& + 212
CASE 9: Temp& = Temp& + 243
CASE 10: Temp& = Temp& + 273
CASE 11: Temp& = Temp& + 304
CASE 12: Temp& = Temp& + 334
END SELECT
'
DOW% = (Temp& + Day%) MOD 7
END FUNCTION |
Gibt aus: "Today is Saturday/Samstag"
Du musst nur date$ durch das Datum ersetzen, wovon du den wochentag wissen möchtest.
Am besten machst du das dann so:
Code: | '*******************************************************************
' WEEKDAY2.BAS = Calulates the day of week for a given date
' ============ Berechnet den Wochentag zu einem beliebigen Datum
'
' (c) DOUGLAS LUSHER, 1993
'******************************************************************
'
Declare FUNCTION DOW% (day%, month%, year%)
'
CLS
'
SELECT CASE DOW%(5,1,2006)
CASE 0: D$ = "Saturday / Samstag"
CASE 1: D$ = "Sunday / Sonntag"
CASE 2: D$ = "Monday / Montag"
CASE 3: D$ = "Tuesday / Dienstag"
CASE 4: D$ = "Wednesday / Mittwoch"
CASE 5: D$ = "Thursday / Donnerstag"
CASE 6: D$ = "Friday / Freitag"
END SELECT
'
PRINT D$;
SLEEP
END
'
'
FUNCTION DOW% (day%, month%, year%)
'returns a value representing the day of the week (0 = Saturday, 1 = Sunday,
'2 = Monday, etc) for the date string supplied in the form "MM-DD-YYYY"
'
Year% = Year% + (Month% < 3)
Temp& = (Year% * 365&) + (Year% \ 4) - (Year% \ 100) + (Year% \ 400)
'
SELECT CASE Month%
CASE 1: Temp& = Temp& + 365
CASE 2: Temp& = Temp& + 396
CASE 3: Temp& = Temp& + 59
CASE 4: Temp& = Temp& + 90
CASE 5: Temp& = Temp& + 120
CASE 6: Temp& = Temp& + 151
CASE 7: Temp& = Temp& + 181
CASE 8: Temp& = Temp& + 212
CASE 9: Temp& = Temp& + 243
CASE 10: Temp& = Temp& + 273
CASE 11: Temp& = Temp& + 304
CASE 12: Temp& = Temp& + 334
END SELECT
'
DOW% = (Temp& + Day%) MOD 7
END FUNCTION |
Ich hab hier einfach die Datumsangabe ohne String gemacht, man kann also ganz einfach DOW(tag, monat, jahr) schreiben. _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
The real Agent D

Anmeldungsdatum: 24.11.2005 Beiträge: 605 Wohnort: Hall i. T.
|
Verfasst am: 28.10.2006, 12:42 Titel: |
|
|
Sollte das Prog aus der MonFAQ nicht bis 2450 funzen?  |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 28.10.2006, 12:55 Titel: |
|
|
Steht jedenfalls darüber
Einfach austesten, hilft meißten  _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 28.10.2006, 17:33 Titel: |
|
|
Ohne viel Kommentar:
http://www.dreael.ch/Deutsch/Download/DatumBerechnung.html
Diese Routinen wandeln ein Datum in eine absolute Anzahl Tage und umgekehrt um. Mit einem MOD 7 hast Du den Wochentag.
Übrigens gerade aktuell: Sommer/Winterzeitwechsel diese Nacht. Habe kürzlich auch in diesem Zusammenhang ein Problem in einem .VBS gelöst, wo es um die Umwandlung von UNIX/Linux-Timestamps ins Microsoft-Format für ein Excel-Sheet ging. Problem übrigens bei Microsoft: lokale Zeit und nicht UTC wie Linux! => Ihr könnt dort also nicht Sonntag 29.10.2006, 02.30 Uhr vor oder nach der Uhrenumstellung unterscheiden! Dies kann bei physikalischen Prozessauswertungen (z.B. die Temperaturkurve eines kontinuierlich abkühlenden Gegenstandes kennt keinen Zeitsprung) durchaus zu einem Problem werden...
Ein Apache-Webserver fügt aus genau diesem Grund immer in "+02:00" bzw. "+01:00" wie in RFC 3339 empfohlen, so dass dort der nächtliche Webseitenbesuch problemlos zugeordnet werden kann. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
Manu

Anmeldungsdatum: 16.07.2006 Beiträge: 174 Wohnort: Bayern
|
Verfasst am: 29.10.2006, 21:57 Titel: |
|
|
danke für die vielen guten antworten
meine idee ist folgende:
einen planersteller
man gibt den monat an bsp. mai
dann werden alle donnerstage und sonntage dieses monates ermittelt mit dem jeweiligen datum.
man kann auch noch spezielle termine einfügen z.b. montag dieser wird dann an der richtigen stelle platziert also z.b.
Monat Mai:
Donnerstag, 01.05.06
Sonntag, 04.05.06
Donnerstag; 08.05.06
Freitag, 09.05.06 'spezieller Termin wird eingefügt
Sontag, 11.05.06
Donnerstag, 15.05.06
...
sowas sollte erstellt werden können.
meine idee ist ein minstrantenplanersteller, da donnerstag und sonntag immer messe ist. am freitag ist z.b. fatima.
ich wäre froh wenn ihr mit helfen könntet
danke
mfg Manu |
|
Nach oben |
|
 |
|