https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122085
Bug ID: 122085
Summary: Day_Of_Week returns wrong day
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ada
Assignee: unassigned at gcc dot gnu.org
Reporter: commaperiodsemicolon at gmail dot com
CC: dkm at gcc dot gnu.org
Target Milestone: ---
On gcc version 11.4.0 x86_64-linux-gnu:
Problem:
######################################################################
Ada.Calendar.Formatting.Day_Of_Week returns the wrong day.
Test Program:
######################################################################
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Calendar; use Ada.Calendar;
with Ada.Calendar.Formatting; use Ada.Calendar.Formatting;
with Ada.Calendar.Time_Zones; use Ada.Calendar.Time_Zones;
procedure Test_Day_Of_Week is
Date : Time;
begin
Date := Ada.Calendar.Formatting.Time_Of (Year => 2025, Month => 1, Day =>
1);
Put_Line("2025 -- " & Day_Name'Image (Day_Of_Week(Date)));
Date := Ada.Calendar.Formatting.Time_Of (Year => 2020, Month => 1, Day =>
1);
Put_Line("2020 -- " & Day_Name'Image (Day_Of_Week(Date)));
Date := Ada.Calendar.Formatting.Time_Of (Year => 2019, Month => 1, Day =>
1);
Put_Line("2019 -- " & Day_Name'Image (Day_Of_Week(Date)));
Date := Ada.Calendar.Formatting.Time_Of (Year => 2018, Month => 1, Day =>
1);
Put_Line("2018 -- " & Day_Name'Image (Day_Of_Week(Date)));
Date := Ada.Calendar.Formatting.Time_Of (Year => 2017, Month => 1, Day =>
1);
Put_Line("2017 -- " & Day_Name'Image (Day_Of_Week(Date)));
end Test_Day_Of_Week;
#######################################################################
Program Output (stdout):
#######################################################################
> ./test_day_of_week
2025 -- TUESDAY
2020 -- TUESDAY
2019 -- MONDAY
2018 -- SUNDAY
2017 -- SATURDAY
#######################################################################
Validation (using cal utility):
#######################################################################
> cal 1 2025
January 2025
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
> cal 1 2020
January 2020
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
> cal 1 2019
January 2019
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
> cal 1 2018
January 2018
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
> cal 1 2017
January 2017
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31