16 lines
639 B
Plaintext
16 lines
639 B
Plaintext
twelve_hours := proc(str)
|
|
local dt, zone;
|
|
local months := ["January","February","March","April","May","June","July","August","September","October","November","December"];
|
|
dt := StringTools:-ParseTime("%B %d %Y %l:%M%p", str);
|
|
zone := StringTools:-RegSplit(" ", str)[-1];
|
|
dt := Date(dt:-year, dt:-month, dt:-monthDay, dt:-hour, dt:-minute, timezone = zone);
|
|
dt := dt + 12 * Unit(hours);
|
|
printf("%s %d %d ", months[Month(dt)], DayOfMonth(dt), Year(dt));
|
|
if (HourOfDay(dt) >= 12) then
|
|
printf("%d:%dpm ", HourOfDay(dt)-12, Minute(dt));
|
|
else
|
|
printf("%d:%dam ", HourOfDay(dt), Minute(dt));
|
|
end if;
|
|
printf(TimeZone(dt));
|
|
end proc;
|