mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 05:07:45 +00:00
cal: Only show year next to each month in one-month-mode
Additionally rename a loop variable in serenity_main() because after introducing the `Header` enum IMO it's less readable with `i`.
This commit is contained in:
parent
a3e6b18efc
commit
af2a606f25
2 changed files with 26 additions and 11 deletions
|
@ -45,7 +45,7 @@ $ cal 2023
|
||||||
Year 2023
|
Year 2023
|
||||||
|
|
||||||
|
|
||||||
January - 2023 February - 2023 March - 2023
|
January February March
|
||||||
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
|
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
|
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
|
8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 11
|
||||||
|
@ -54,7 +54,7 @@ Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
|
||||||
29 30 31 26 27 28 26 27 28 29 30 31
|
29 30 31 26 27 28 26 27 28 29 30 31
|
||||||
|
|
||||||
|
|
||||||
April - 2023 May - 2023 June - 2023
|
April May June
|
||||||
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
|
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
|
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
|
2 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 9 10
|
||||||
|
@ -64,7 +64,7 @@ Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
|
||||||
30
|
30
|
||||||
|
|
||||||
|
|
||||||
July - 2023 August - 2023 September - 2023
|
July August September
|
||||||
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
|
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
|
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
|
2 3 4 5 6 7 8 6 7 8 9 10 11 12 3 4 5 6 7 8 9
|
||||||
|
@ -74,7 +74,7 @@ Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
|
||||||
30 31
|
30 31
|
||||||
|
|
||||||
|
|
||||||
October - 2023 November - 2023 December - 2023
|
October November December
|
||||||
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
|
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
|
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
|
8 9 10 11 12 13 14 5 6 7 8 9 10 11 3 4 5 6 7 8 9
|
||||||
|
|
|
@ -35,12 +35,27 @@ static ErrorOr<StringView> month_name(int month)
|
||||||
return AK::long_month_names.at(month_index);
|
return AK::long_month_names.at(month_index);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ErrorOr<Vector<String>> month_lines_to_print(int month, int year)
|
enum class Header {
|
||||||
|
MonthAndYear,
|
||||||
|
Month,
|
||||||
|
};
|
||||||
|
|
||||||
|
static ErrorOr<Vector<String>> month_lines_to_print(Header header_mode, int month, int year)
|
||||||
{
|
{
|
||||||
Vector<String> lines;
|
Vector<String> lines;
|
||||||
|
|
||||||
// FIXME: Both the month name and month header text should be provided by a locale
|
// 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("{} - {}", TRY(month_name(month)), year)), month_width))));
|
String header;
|
||||||
|
switch (header_mode) {
|
||||||
|
case Header::Month:
|
||||||
|
header = TRY(String::from_utf8(TRY(month_name(month))));
|
||||||
|
break;
|
||||||
|
case Header::MonthAndYear:
|
||||||
|
header = TRY(String::formatted("{} - {}", TRY(month_name(month)), year));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
TRY(lines.try_append(TRY(String::formatted("{: ^{}s}", header, month_width))));
|
||||||
TRY(lines.try_append(TRY(String::from_utf8("Su Mo Tu We Th Fr Sa"sv))));
|
TRY(lines.try_append(TRY(String::from_utf8("Su Mo Tu We Th Fr Sa"sv))));
|
||||||
|
|
||||||
auto date_time = Core::DateTime::create(year, month, 1);
|
auto date_time = Core::DateTime::create(year, month, 1);
|
||||||
|
@ -121,16 +136,16 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
||||||
if (year_mode) {
|
if (year_mode) {
|
||||||
outln("{: ^{}}", TRY(String::formatted("Year {}", year)), year_width);
|
outln("{: ^{}}", TRY(String::formatted("Year {}", year)), year_width);
|
||||||
|
|
||||||
for (int i = 1; i < 12; ++i) {
|
for (int month_index = 1; month_index < 12; ++month_index) {
|
||||||
outln();
|
outln();
|
||||||
outln();
|
outln();
|
||||||
Vector<String> lines_left = TRY(month_lines_to_print(i++, year));
|
Vector<String> lines_left = TRY(month_lines_to_print(Header::Month, month_index++, year));
|
||||||
Vector<String> lines_center = TRY(month_lines_to_print(i++, year));
|
Vector<String> lines_center = TRY(month_lines_to_print(Header::Month, month_index++, year));
|
||||||
Vector<String> lines_right = TRY(month_lines_to_print(i, year));
|
Vector<String> lines_right = TRY(month_lines_to_print(Header::Month, month_index, year));
|
||||||
print_months_side_by_side(lines_left, lines_center, lines_right);
|
print_months_side_by_side(lines_left, lines_center, lines_right);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Vector<String> lines = TRY(month_lines_to_print(month, year));
|
Vector<String> lines = TRY(month_lines_to_print(Header::MonthAndYear, month, year));
|
||||||
for (String const& line : lines) {
|
for (String const& line : lines) {
|
||||||
outln("{}", line);
|
outln("{}", line);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue