====== Vega.Calendar — Monatskalender und Datumsrechnung ====== ''TMonthCalendar'' zum Anklicken — und die Rechnung, die dazugehört. Ein Datum ist hier eine **Zahl**: Tage seit dem 1.1.1970, wie ''date'' in ''std.time''. Damit sind Vergleich, Abstand und „sieben Tage weiter“ gewöhnliche Rechnung, und es gibt keinen zweiten Datumstyp neben dem der Standardbibliothek. Quelldatei: ''Vega/Calendar.lyx'' → [[lyx_-_programmiersprache:vega:units|Alle Units]] · [[lyx_-_programmiersprache:vega:controls|Alle Steuerelemente]] · [[lyx_-_programmiersprache:vega|Vega VCL]] ---- ===== Klassen ===== ^ Klasse ^ Basis ^ Zweck ^ | ''TNumScan'' | — | Hilfsergebnis beim Lesen einer Zahl aus Text | | [[lyx_-_programmiersprache:vega:controls:tmonthcalendar|TMonthCalendar]] | [[lyx_-_programmiersprache:vega:controls:tcontrol|TControl]] | Monatsblatt mit Kopfzeile, Wochentagen und 6×7-Raster | ===== Konstanten ===== ^ Name ^ Typ ^ Wert ^ Bedeutung ^ | ''VEGA_NO_DATE'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''0 - 100000000'' | Kein gültiges Datum — die ''0'' taugt dafür nicht, sie ist der 1.1.1970 | | ''VEGA_CAL_ROWS'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''6'' | Zeilen des Tagesrasters | | ''VEGA_CAL_COLS'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''7'' | Spalten des Tagesrasters | ===== Freie Funktionen ===== ^ Signatur ^ Zweck ^ | ''Today(): int64'' | Heute, aus der Systemzeit in UTC | | ''MakeDate(year: int64, month: int64, day: int64): int64'' | Datum aus Jahr, Monat, Tag | | ''YearOf(d: int64): int64'' | Jahr eines Datums | | ''MonthOf(d: int64): int64'' | Monat eines Datums | | ''DayOf(d: int64): int64'' | Tag eines Datums | | ''WeekdayMon(d: int64): int64'' | Wochentag mit Montag als 0 | | ''AddMonths(d: int64, n: int64): int64'' | Monate verschieben; der Tag wird mitgenommen, so weit der Zielmonat reicht | | ''AddYears(d: int64, n: int64): int64'' | Jahre verschieben | | ''StartOfMonth(year: int64, month: int64): int64'' | Erster Tag dieses Monats | | ''IsSameMonth(a: int64, b: int64): bool'' | Liegen beide Daten im selben Monat | | ''MonthName(m: int64): pchar'' | Monatsname, deutsch | | ''WeekdayShort(w: int64): pchar'' | Kürzel des Wochentags | | ''FormatDate(dst: TTextBuffer, d: int64): void'' | ''TT.MM.JJJJ'' in einen [[lyx_-_programmiersprache:vega:controls:ttextbuffer|TTextBuffer]] schreiben | | ''FormatDateISO(dst: TTextBuffer, d: int64): void'' | ''JJJJ-MM-TT'' schreiben | | ''ParseDate(s: pchar): int64'' | Datum aus Text lesen; ''VEGA_NO_DATE'' bei Unsinn | | ''NewMonthCalendar(): TMonthCalendar'' | Erzeugt einen Kalender | ---- ===== Zu beachten ===== * ''AddMonths(31.01., 1)'' ergibt den 28.02. — sonst landete zweimal Vor- und zweimal Zurückblättern woanders. * Die Woche beginnt am Montag; ''std.time'' zählt ab Sonntag, ''WeekdayMon'' rechnet um. * Rückgaben prüfen: ''ParseDate'' und ''DateAt'' liefern ''VEGA_NO_DATE'', wenn nichts Sinnvolles herauskommt. ---- ===== Abhängigkeiten ===== **Importiert:** [[lyx_-_programmiersprache:vega:units:types|Vega.Types]], [[lyx_-_programmiersprache:vega:units:events|Vega.Events]], [[lyx_-_programmiersprache:vega:units:canvas|Vega.Canvas]], [[lyx_-_programmiersprache:vega:units:theme|Vega.Theme]], [[lyx_-_programmiersprache:vega:units:control|Vega.Control]], [[lyx_-_programmiersprache:vega:units:font|Vega.Font]], [[lyx_-_programmiersprache:vega:units:strings|Vega.Strings]], [[lyx_-_programmiersprache:vega:units:lists|Vega.Lists]], [[lyx_-_programmiersprache:vega:units:style|Vega.Style]] · Standardbibliothek: ''std.time'' **Wird importiert von:** [[lyx_-_programmiersprache:vega:units:datetimepicker|Vega.DateTimePicker]], [[lyx_-_programmiersprache:vega:units:editbtn|Vega.EditBtn]] Letzte Aktualisierung: 2026-08-20 — Klassen, Aufzählungen, Konstanten und freie Funktionen maschinell aus ''Vega/Calendar.lyx'' erhoben.