DMUG-Archiv 2013

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Aufgabe::Wiederkehrende Datumsanzeige

Liebe Freundinnen und Freunde unverstellter Uhren,

das ist

Clear[daysInMonth, gregDateQ, backDays, shift, nextCorrectGregorianDay]
daysInMonth[x_List] := {31, If[LeapYearQ[{x[[1]]}], 29, 28], 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}[[x[[2]]]] gregDateQ[x_List] := VectorQ[x, NumericQ] && Length[x] == 3 && x[[1]] > 1582 (* 15.10.1582 *) &&
        1 <= x[[2]] <= 12 && 1 <= x[[3]] <= daysInMonth[x]
backDays[x_List, \[Sigma]_Integer] := \[Sigma] - daysInMonth[x]
shift[x_List] := {1, 2, 1, 2, 1, 3, 2, 1, 2, 1, 3, 2}[[x[[2]]]]
nextCorrectGregorianDay[x_List, \[Sigma]_Integer: 31] := DatePlus[Block[{b = 0},
    NestWhile[DatePlus[#, {shift[#], "Month"}] &,
     x, (Mod[b += backDays[#, \[Sigma]], \[Sigma], 1] != \[Sigma]) &]
], {{1, "Month" }, {1 - Last[x], "Day"}} ] /; gregDateQ[x] && \[Sigma]
= 31

Uebrigens, die Toene der C-Dur Tonleiter der wohltemperierten Stimmung können den Monaten mit 31 Tagen zugewiesen werden, so dass zwischen ihnen - bei einem Klavier auf den schwarzen Tasten - die Monate mit weniger als 31 Tagen figurieren.

Gruss
Udo.

Eine mit dem gregorianischen Kalender lebende Person entschliesst sich, die Tagesdatumsanzeige ihrer Armbanduhr am Monatsende nicht mehr anzupassen. An welchem Monatsanfang zeigt diese Armbanduhr das korrekte Tagesdatum wieder an?

Attachment: datumsanzeige.jpg
Description: JPEG image

Antworten:
Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html