====== std.time ====== Datum/Zeit-Typen (''date'', ''time'', ''datetime'', ''timestamp'') mit Unix-Sekunden und Mikrosekunden-Auflösung. ''Now()'' liefert die aktuelle ''datetime'', ''NowUs()'' den hochauflösenden Zeitstempel (µs), ''NowMs()'' in Millisekunden. Umrechnung zwischen Julian Day Number und Gregorianischem Kalender, Schaltjahr-Prüfung (''IsLeapYear''), Wochentag-Berechnung, Timezone-Support (UTC, CET, CEST via ''ApplyTimeZone''). Zeitkonstanten: ''SECOND'', ''MINUTE'', ''HOUR'', ''DAY'' in Mikrosekunden. Einsatzbereiche: Benchmarking und Profiling, HTTP/SMTP-Protokoll-Zeitstempel, Scheduling, Rate-Limiting, Session-Timeouts. **Autor:** Andreas Röne\\ **Copyright:** 2024-2025 Andreas Röne ---- ===== Typen ===== ---- ===== Funktionen ===== ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''DaysFromCivil(year: int64, month: int64, day: int64): int64'' | pub | Berechnet Tage aus Datum (Julian Day) | | ''CivilYearFromDays(days: int64): int64'' | pub | Extrahiert Jahr aus Julian-Day-Zahl | | ''CivilMonthFromDays(days: int64): int64'' | pub | Extrahiert Monat aus Julian-Day-Zahl | | ''CivilDayFromDays(days: int64): int64'' | pub | Extrahiert Tag aus Julian-Day-Zahl | | ''IsLeapYear(y: int64): bool'' | pub | Prüft ob Jahr ein Schaltjahr ist | | ''DateFromYmd(year: int64, month: int64, day: int64): date'' | pub | Erstellt date-Wert aus Jahr/Monat/Tag | | ''YearFromDate(d: date): int64'' | pub | Extrahiert Jahr aus date-Wert | | ''MonthFromDate(d: date): int64'' | pub | Extrahiert Monat aus date-Wert | | ''DayFromDate(d: date): int64'' | pub | Extrahiert Tag aus date-Wert | | ''TimeFromHms(hour: int64, minute: int64, second: int64): time'' | pub | Erstellt time-Wert aus Stunde/Minute/Sekunde | | ''HourFromTime(t: time): int64'' | pub | Extrahiert Stunde aus time-Wert | | ''MinuteFromTime(t: time): int64'' | pub | Extrahiert Minute aus time-Wert | | ''SecondFromTime(t: time): int64'' | pub | Extrahiert Sekunde aus time-Wert | | ''DatetimeFromUnixSeconds(sec: int64): datetime'' | pub | Erstellt datetime aus Unix-Sekunden | | ''DatetimeToUnixSeconds(dt: datetime): int64'' | pub | Konvertiert datetime in Unix-Sekunden | | ''TimestampFromUnixSeconds(sec: int64): timestamp'' | pub | Erstellt Mikrosekunden-Timestamp | | ''UnixSecondsFromTimestamp(ts: timestamp): int64'' | pub | Extrahiert Unix-Sekunden aus Timestamp | ---- ===== Externe Funktionen ===== ^ Signatur ^ Beschreibung ^ | ''now_unix(): int64'' | Gibt aktuelle Unix-Zeit in Sekunden zurück | | ''now_unix_ms(): int64'' | Gibt aktuelle Unix-Zeit in Millisekunden zurück | | ''Now(): datetime'' | Gibt aktuelle datetime zurück | | ''NowUs(): timestamp'' | Gibt hochauflösenden Mikrosekunden-Timestamp zurück | | ''NowMs(): int64'' | Gibt aktuelle Zeit in Millisekunden zurück | | ''DayOfWeekFromDate(d: date): int64'' | Gibt Wochentag eines Datums zurück | | ''DaysInMonth(year: int64, month: int64): int64'' | Gibt Tagesanzahl eines Monats zurück | ---- ===== Konstanten ===== ^ Name ^ Typ ^ Wert ^ Sichtbarkeit ^ | ''SECOND'' | ''int64'' | ''1000000'' | pub | | ''MINUTE'' | ''int64'' | ''60000000'' | pub | | ''HOUR'' | ''int64'' | ''3600000000'' | pub | | ''DAY'' | ''int64'' | ''86400000000'' | pub | ==== TimeZone (struct) ==== ^ Feld ^ Typ ^ | ''name'' | ''pchar'' | | ''offset_seconds'' | ''int64'' | ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''ZoneUTC(): TimeZone'' | pub | Gibt UTC-Zeitzone zurück | | ''ZoneCET(): TimeZone'' | pub | Gibt CET-Zeitzone (UTC+1) zurück | | ''ZoneCEST(): TimeZone'' | pub | Gibt CEST-Zeitzone (UTC+2) zurück | | ''ApplyTimeZone(dt: datetime, zone: TimeZone): datetime'' | pub | Wendet Zeitzone auf datetime an |