Summary: | ASTERISK-29696: say.conf: wrong logic when converting 24 hour time to 12 hour am/pm | ||||
Reporter: | Benjamin Keith Ford (bford) | Labels: | |||
Date Opened: | 2021-10-19 13:19:34 | Date Closed: | 2021-10-19 13:19:56 | ||
Priority: | Minor | Regression? | |||
Status: | Closed/Complete | Components: | Applications/app_voicemail | ||
Versions: | 16.16.0 | Frequency of Occurrence | Constant | ||
Related Issues: |
| ||||
Environment: | Doesn't matter, and from what I can see all version are affected | Attachments: | |||
Description: | in SAY.CONF there is 2 big logic errors:
{noformat} _date:[I]:. => num:$[${SAY:8:2} % 12] ; hour 0-12 {noformat} Modulo 12 will never return 12, but will return 0 at noon. Should be something like: {noformat} _date:[I]:. => num:${IF($[${SAY:8:2} > 12]?$[${SAY:8:2}-12]:${SAY:8:2})} {noformat} also: {noformat} _date:[pP]:. => digits/$[ ${SAY:8:2} > 12 ? "p-m" :: "a-m" ] ; am pm {noformat} this is wrong: midnight is 00, and noon is 12, and noon should be pm, so it should be {noformat} _date:[pP]:. => digits/$[ ${SAY:8:2} >= 12 ? "p-m" :: "a-m" ] ; am pm {noformat} I guess not many people are using this, because those error have been there for a very long time, I also have a super old 1.8.7 and it was already in it. | ||||
Comments: |