diff --git a/Base/usr/share/man/man1/cal.md b/Base/usr/share/man/man1/cal.md index b3bb8cbbf4..4ee85eaa17 100644 --- a/Base/usr/share/man/man1/cal.md +++ b/Base/usr/share/man/man1/cal.md @@ -22,17 +22,17 @@ Days, months and years are specified with numbers. Week starts at Sunday. ```sh # Display the current month $ cal - 12 - 1992 + March - 2023 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 + 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 # Display any month -$ cal 03 2019 - 03 - 2019 +$ cal 1 1999 + January - 1999 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 @@ -41,40 +41,45 @@ Su Mo Tu We Th Fr Sa 24 25 26 27 28 29 30 31 -# Display an entire year -$ cal 2000 - Year 2000 +$ cal 2023 + Year 2023 + + + January - 2023 February - 2023 March - 2023 +Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa + 1 2 3 4 5 6 7 1 2 3 4 1 2 3 4 + 8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 11 +15 16 17 18 19 20 21 12 13 14 15 16 17 18 12 13 14 15 16 17 18 +22 23 24 25 26 27 28 19 20 21 22 23 24 25 19 20 21 22 23 24 25 +29 30 31 26 27 28 26 27 28 29 30 31 + + + April - 2023 May - 2023 June - 2023 +Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa + 1 1 2 3 4 5 6 1 2 3 + 2 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 9 10 + 9 10 11 12 13 14 15 14 15 16 17 18 19 20 11 12 13 14 15 16 17 +16 17 18 19 20 21 22 21 22 23 24 25 26 27 18 19 20 21 22 23 24 +23 24 25 26 27 28 29 28 29 30 31 25 26 27 28 29 30 +30 + + + July - 2023 August - 2023 September - 2023 +Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa + 1 1 2 3 4 5 1 2 + 2 3 4 5 6 7 8 6 7 8 9 10 11 12 3 4 5 6 7 8 9 + 9 10 11 12 13 14 15 13 14 15 16 17 18 19 10 11 12 13 14 15 16 +16 17 18 19 20 21 22 20 21 22 23 24 25 26 17 18 19 20 21 22 23 +23 24 25 26 27 28 29 27 28 29 30 31 24 25 26 27 28 29 30 +30 31 + + + October - 2023 November - 2023 December - 2023 +Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa + 1 2 3 4 5 6 7 1 2 3 4 1 2 + 8 9 10 11 12 13 14 5 6 7 8 9 10 11 3 4 5 6 7 8 9 +15 16 17 18 19 20 21 12 13 14 15 16 17 18 10 11 12 13 14 15 16 +22 23 24 25 26 27 28 19 20 21 22 23 24 25 17 18 19 20 21 22 23 +29 30 31 26 27 28 29 30 24 25 26 27 28 29 30 - 01 - 2000 02 - 2000 03 - 2000 -Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa - 1 1 2 3 4 5 1 2 3 4 - 2 3 4 5 6 7 8 6 7 8 9 10 11 12 5 6 7 8 9 10 11 - 9 10 11 12 13 14 15 13 14 15 16 17 18 19 12 13 14 15 16 17 18 -16 17 18 19 20 21 22 20 21 22 23 24 25 26 19 20 21 22 23 24 25 -23 24 25 26 27 28 29 27 28 29 26 27 28 29 30 31 -30 31 - 04 - 2000 05 - 2000 06 - 2000 -Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa - 1 1 2 3 4 5 6 1 2 3 - 2 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 9 10 - 9 10 11 12 13 14 15 14 15 16 17 18 19 20 11 12 13 14 15 16 17 -16 17 18 19 20 21 22 21 22 23 24 25 26 27 18 19 20 21 22 23 24 -23 24 25 26 27 28 29 28 29 30 31 25 26 27 28 29 30 -30 - 07 - 2000 08 - 2000 09 - 2000 -Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa - 1 1 2 3 4 5 1 2 - 2 3 4 5 6 7 8 6 7 8 9 10 11 12 3 4 5 6 7 8 9 - 9 10 11 12 13 14 15 13 14 15 16 17 18 19 10 11 12 13 14 15 16 -16 17 18 19 20 21 22 20 21 22 23 24 25 26 17 18 19 20 21 22 23 -23 24 25 26 27 28 29 27 28 29 30 31 24 25 26 27 28 29 30 -30 31 - 10 - 2000 11 - 2000 12 - 2000 -Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa - 1 2 3 4 5 6 7 1 2 3 4 1 2 - 8 9 10 11 12 13 14 5 6 7 8 9 10 11 3 4 5 6 7 8 9 -15 16 17 18 19 20 21 12 13 14 15 16 17 18 10 11 12 13 14 15 16 -22 23 24 25 26 27 28 19 20 21 22 23 24 25 17 18 19 20 21 22 23 -29 30 31 26 27 28 29 30 24 25 26 27 28 29 30 - 31 ``` diff --git a/Userland/Utilities/cal.cpp b/Userland/Utilities/cal.cpp index ff0a320393..023785c119 100644 --- a/Userland/Utilities/cal.cpp +++ b/Userland/Utilities/cal.cpp @@ -4,6 +4,7 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include #include #include #include @@ -26,12 +27,22 @@ int current_year; int current_month; int current_day; +static ErrorOr month_name(int month) +{ + int month_index = month - 1; + + if (month_index < 0 || month_index >= static_cast(AK::long_month_names.size())) + return Error::from_string_view("Month out of range"sv); + + return AK::long_month_names.at(month_index); +} + static ErrorOr> month_lines_to_print(int month, int year) { Vector lines; // FIXME: Both the month name and month header text should be provided by a locale - TRY(lines.try_append(TRY(String::formatted("{: ^{}s}", TRY(String::formatted("{:02} - {:02}", month, year)), month_width)))); + TRY(lines.try_append(TRY(String::formatted("{: ^{}s}", TRY(String::formatted("{} - {}", TRY(month_name(month)), year)), month_width)))); TRY(lines.try_append(TRY(String::from_utf8("Su Mo Tu We Th Fr Sa"sv)))); int day_to_print = 1;