Hallo Leute, In einer Kleinsteuerung (Siemens Logo) will ich den Wochentag berechnen. (d.h. keine Gleitpunktberechnung) Dieser muss dann wie folgt aussehen: Sonntag = 0 Mittwoch = 3 Samstag = 6 Ha, einfach dachte ich uns googelte mal: http://www.straub.as/csharp/basic/Uwochentag.html Danach entwarf ich in VB.net schnell mal ein Programm (siehe Anhang). Leider stimmt die Berechnung nicht :-O Woran liegt es? Hat jemand eine andere Formel?
Für alle, denen mein Programm ein Virus darstellt, obwohl in source:
1 | Function GetWeekday(ByVal dayofmonth As Short, ByVal month As Short, ByVal year As Short) As Short |
2 | |
3 | Dim h As Short |
4 | Dim k As Short |
5 | |
6 | If month <= 2 Then |
7 | h = month + 12 |
8 | k = year - 1 |
9 | Else |
10 | h = month |
11 | k = year |
12 | End If |
13 | |
14 | |
15 | GetWeekday = dayofmonth + 2 * h + (3 * h + 3) / 5 + k + k / 4 - k / 100 + k / 400 + 1 |
16 | GetWeekday = GetWeekday Mod 7 |
17 | |
18 | End Function |
MaWin schrieb: > Leider stimmt die Berechnung nicht :-O > > Woran liegt es? Berücksichtigt Deine Formel denn die Besonderheiten des Gregorjanischen Kalenders?
MaWin schrieb: > Leider stimmt die Berechnung nicht :-O geht nicht gibts nicht. Bitte mehr Fehlertext (Fehlerbeschreibung)
Normal schon mit den 100 und 400 Jahren. Dafür habe ich ja die Formel mithereingestellt.
Fehlertext: Wie im Programm ersichtlich, wird ein Datum mit einem DateTimePicker vorgegeben. Es wird aber der falsche Wochentag berechnet.
Beitrag #5970352 wurde von einem Moderator gelöscht.
nickm schrieb: > Wie viel Bit hat denn so ein "short"? > > Nick Guter Tipp, aber an dem liegts nicht :-(
Short sollte vermutlich mehr als 15 Bit haben (16 mit Vorzeichen). Könnte, aber muss nicht reichen. Was macht "/" bei Deiner Sprache (VB.net?) bei Division mit Integer-Zahlen?
Achim H. schrieb: > Short sollte vermutlich mehr als 15 Bit haben (16 mit Vorzeichen). > Könnte, aber muss nicht reichen. > > Was macht "/" bei Deiner Sprache (VB.net?) bei Division mit > Integer-Zahlen? Das gleiche wie in C#. Habe es mit diversen Datentypen durchgekaut.
Wo hast du die Formel her? In den Formeln bei Wikipedia taucht idR eine 2.6 als Faktor auf, um die Monate zu berechnen. Wie funktioniert das bei deiner Formel? https://de.wikipedia.org/wiki/Wochentagsberechnung MaWin schrieb: > Es wird aber der falsche Wochentag berechnet. Kannst du bitte einige Beispiele geben? (Datum - Soll - Ist)
Achim H. schrieb: > Short sollte vermutlich mehr als 15 Bit haben (16 mit Vorzeichen). > Könnte, aber muss nicht reichen. > > Was macht "/" bei Deiner Sprache (VB.net?) bei Division mit > Integer-Zahlen? Du bist mein Held. DAS war doch der entscheidende Hinweis. div ist in vb nämlich \ und nicht / Dankeschön nochmals.
Beitrag #5970365 wurde von einem Moderator gelöscht.
Das wird ja immer munterer hier mit den Psychopathen die MaWin ins Namensfeld schreiben. Nun outen sie sich als VB Programmierer die kein VB können, Nun ja, die Namensschummelei werden die meisten schon bemerkt haben.
Beitrag #5970417 wurde von einem Moderator gelöscht.
MaWin schrieb: > Das wird ja immer munterer hier mit den Psychopathen die MaWin ins > Namensfeld schreiben. Wer sagt Dir denn, das es ausser Dir nicht noch andere Personen gibt, die die gleiche Buchstabenkombination als Namen haben?
Harald W. schrieb: > Wer sagt Dir denn, das es ausser Dir nicht noch andere Personen > gibt, die die gleiche Buchstabenkombination als Namen haben? vermutlich postet hier nun der Ex Vorstandsvorsitzende von VW & Porsche, VB könnte passen, eher als µC
Harald W. schrieb: > Wer sagt Dir denn, das es ausser Dir nicht noch andere Personen > gibt, die die gleiche Buchstabenkombination als Namen haben Der gesunde Menschenverstand sagt, dass er das nicht in der Form abgekürzt schreiben würde. Hast du keinen ?
Beitrag #5970646 wurde von einem Moderator gelöscht.
Beitrag #5970649 wurde von einem Moderator gelöscht.
Beitrag #5970678 wurde von einem Moderator gelöscht.
Beitrag #5970965 wurde von einem Moderator gelöscht.
Beitrag #5971249 wurde von einem Moderator gelöscht.
Beitrag #5971287 wurde von einem Moderator gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.