mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-12-11 17:00:37 +00:00
LibTimeZone: Handle time zones which begin the year in daylight savings
This commit is contained in:
parent
7103012c7d
commit
1f051a8e25
Notes:
sideshowbarker
2024-07-17 20:15:47 +09:00
Author: https://github.com/trflynn89 Commit: https://github.com/SerenityOS/serenity/commit/1f051a8e25c Pull-request: https://github.com/SerenityOS/serenity/pull/12119 Reviewed-by: https://github.com/linusg ✅
2 changed files with 13 additions and 2 deletions
|
@ -545,8 +545,14 @@ static Offset get_active_dst_offset(TimeZoneOffset const& time_zone_offset, AK::
|
|||
auto standard_time_in_effect = offsets[0]->time_in_effect(time);
|
||||
auto daylight_time_in_effect = offsets[1]->time_in_effect(time);
|
||||
|
||||
if ((time < daylight_time_in_effect) || (time >= standard_time_in_effect))
|
||||
return { offsets[0]->offset, InDST::No };
|
||||
if (daylight_time_in_effect < standard_time_in_effect) {
|
||||
if ((time < daylight_time_in_effect) || (time >= standard_time_in_effect))
|
||||
return { offsets[0]->offset, InDST::No };
|
||||
} else {
|
||||
if ((time >= standard_time_in_effect) && (time < daylight_time_in_effect))
|
||||
return { offsets[0]->offset, InDST::No };
|
||||
}
|
||||
|
||||
return { offsets[1]->offset, InDST::Yes };
|
||||
}
|
||||
|
||||
|
|
|
@ -147,6 +147,11 @@ TEST_CASE(get_time_zone_offset_with_dst)
|
|||
test_offset("Europe/Moscow"sv, -1596412800, offset(+1, 4, 31, 19), Yes); // Sunday, June 1, 1919 12:00:00 AM
|
||||
test_offset("Europe/Moscow"sv, -1592611200, offset(+1, 4, 00, 00), Yes); // Tuesday, July 15, 1919 12:00:00 AM
|
||||
test_offset("Europe/Moscow"sv, -1589068800, offset(+1, 3, 00, 00), No); // Monday, August 25, 1919 12:00:00 AM
|
||||
|
||||
// Paraguay begins the year in DST.
|
||||
test_offset("America/Asuncion"sv, 1642558528, offset(-1, 3, 00, 00), Yes); // Wednesday, January 19, 2022 2:15:28 AM
|
||||
test_offset("America/Asuncion"sv, 1663553728, offset(-1, 4, 00, 00), No); // Monday, September 19, 2022 2:15:28 AM
|
||||
test_offset("America/Asuncion"sv, 1671453238, offset(-1, 3, 00, 00), Yes); // Monday, December 19, 2022 12:33:58 PM
|
||||
}
|
||||
|
||||
TEST_CASE(get_named_time_zone_offsets)
|
||||
|
|
Loading…
Reference in a new issue