From 9253e695d129ca28b570a4fdebabb8e25433c2da Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Tue, 28 Dec 2021 12:53:53 -0500 Subject: [PATCH] LibTimeZone: Parse ZONE entries from the TZDB and generate their names --- .../LibTimeZone/GenerateTimeZoneData.cpp | 207 +++++++++++++++++- Userland/Libraries/LibTimeZone/CMakeLists.txt | 12 + Userland/Libraries/LibTimeZone/Forward.h | 15 ++ Userland/Libraries/LibTimeZone/TimeZone.cpp | 13 ++ Userland/Libraries/LibTimeZone/TimeZone.h | 17 ++ 5 files changed, 260 insertions(+), 4 deletions(-) create mode 100644 Userland/Libraries/LibTimeZone/Forward.h create mode 100644 Userland/Libraries/LibTimeZone/TimeZone.cpp create mode 100644 Userland/Libraries/LibTimeZone/TimeZone.h diff --git a/Meta/Lagom/Tools/CodeGenerators/LibTimeZone/GenerateTimeZoneData.cpp b/Meta/Lagom/Tools/CodeGenerators/LibTimeZone/GenerateTimeZoneData.cpp index 27e304af35..773160fbc2 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibTimeZone/GenerateTimeZoneData.cpp +++ b/Meta/Lagom/Tools/CodeGenerators/LibTimeZone/GenerateTimeZoneData.cpp @@ -4,6 +4,8 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include "../LibUnicode/GeneratorUtil.h" // FIXME: Move this somewhere common. +#include #include #include #include @@ -11,25 +13,218 @@ #include #include -static void generate_time_zone_data_header(Core::File& file) +struct Time { + i8 hour { 0 }; + u8 minute { 0 }; + u8 second { 0 }; +}; + +struct DateTime { + u16 year { 0 }; + Optional month; + Optional last_weekday; + Optional after_weekday; + Optional day; + Optional