mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 00:07:36 +00:00
LibC+LibCore: Properly format 12-hour formatted hours
This fixes a small formatting issue where midnight and noon would display as 00 when they should display as 12.
This commit is contained in:
parent
31ca48ebb2
commit
0500d49acb
2 changed files with 24 additions and 8 deletions
|
@ -250,9 +250,13 @@ size_t strftime(char* destination, size_t max_size, char const* format, const st
|
||||||
case 'H':
|
case 'H':
|
||||||
builder.appendff("{:02}", tm->tm_hour);
|
builder.appendff("{:02}", tm->tm_hour);
|
||||||
break;
|
break;
|
||||||
case 'I':
|
case 'I': {
|
||||||
builder.appendff("{:02}", tm->tm_hour % 12);
|
int display_hour = tm->tm_hour % 12;
|
||||||
|
if (display_hour == 0)
|
||||||
|
display_hour = 12;
|
||||||
|
builder.appendff("{:02}", display_hour);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case 'j':
|
case 'j':
|
||||||
builder.appendff("{:03}", tm->tm_yday + 1);
|
builder.appendff("{:03}", tm->tm_yday + 1);
|
||||||
break;
|
break;
|
||||||
|
@ -268,9 +272,13 @@ size_t strftime(char* destination, size_t max_size, char const* format, const st
|
||||||
case 'p':
|
case 'p':
|
||||||
builder.append(tm->tm_hour < 12 ? "a.m." : "p.m.");
|
builder.append(tm->tm_hour < 12 ? "a.m." : "p.m.");
|
||||||
break;
|
break;
|
||||||
case 'r':
|
case 'r': {
|
||||||
builder.appendff("{:02}:{:02}:{:02} {}", tm->tm_hour % 12, tm->tm_min, tm->tm_sec, tm->tm_hour < 12 ? "a.m." : "p.m.");
|
int display_hour = tm->tm_hour % 12;
|
||||||
|
if (display_hour == 0)
|
||||||
|
display_hour = 12;
|
||||||
|
builder.appendff("{:02}:{:02}:{:02} {}", display_hour, tm->tm_min, tm->tm_sec, tm->tm_hour < 12 ? "a.m." : "p.m.");
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case 'R':
|
case 'R':
|
||||||
builder.appendff("{:02}:{:02}", tm->tm_hour, tm->tm_min);
|
builder.appendff("{:02}:{:02}", tm->tm_hour, tm->tm_min);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -153,9 +153,13 @@ String DateTime::to_string(StringView format) const
|
||||||
case 'H':
|
case 'H':
|
||||||
builder.appendff("{:02}", tm.tm_hour);
|
builder.appendff("{:02}", tm.tm_hour);
|
||||||
break;
|
break;
|
||||||
case 'I':
|
case 'I': {
|
||||||
builder.appendff("{:02}", tm.tm_hour % 12);
|
int display_hour = tm.tm_hour % 12;
|
||||||
|
if (display_hour == 0)
|
||||||
|
display_hour = 12;
|
||||||
|
builder.appendff("{:02}", display_hour);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case 'j':
|
case 'j':
|
||||||
builder.appendff("{:03}", tm.tm_yday + 1);
|
builder.appendff("{:03}", tm.tm_yday + 1);
|
||||||
break;
|
break;
|
||||||
|
@ -171,9 +175,13 @@ String DateTime::to_string(StringView format) const
|
||||||
case 'p':
|
case 'p':
|
||||||
builder.append(tm.tm_hour < 12 ? "a.m." : "p.m.");
|
builder.append(tm.tm_hour < 12 ? "a.m." : "p.m.");
|
||||||
break;
|
break;
|
||||||
case 'r':
|
case 'r': {
|
||||||
builder.appendff("{:02}:{:02}:{:02} {}", tm.tm_hour % 12, tm.tm_min, tm.tm_sec, tm.tm_hour < 12 ? "a.m." : "p.m.");
|
int display_hour = tm.tm_hour % 12;
|
||||||
|
if (display_hour == 0)
|
||||||
|
display_hour = 12;
|
||||||
|
builder.appendff("{:02}:{:02}:{:02} {}", display_hour, tm.tm_min, tm.tm_sec, tm.tm_hour < 12 ? "a.m." : "p.m.");
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case 'R':
|
case 'R':
|
||||||
builder.appendff("{:02}:{:02}", tm.tm_hour, tm.tm_min);
|
builder.appendff("{:02}:{:02}", tm.tm_hour, tm.tm_min);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue