(true) 00:00:00 .. 12:59:59 AM/PM (false) 00:00 .. 12:59 AM/PM
| 144 | // (true) 00:00:00 .. 12:59:59 AM/PM |
| 145 | // (false) 00:00 .. 12:59 AM/PM |
| 146 | char * seconds2clockAMPM(uint32_t seconds, bool displaySeconds = false) |
| 147 | { |
| 148 | bool PMflag = false; |
| 149 | char * buf = __dateTimeHelperBuffer; |
| 150 | uint8_t pos = 0; |
| 151 | |
| 152 | uint16_t days; |
| 153 | uint8_t hours, minutes, sec; |
| 154 | secondsSplit(seconds, &days, &hours, &minutes, &sec); |
| 155 | |
| 156 | if (hours >= 12) |
| 157 | { |
| 158 | PMflag = true; |
| 159 | if (hours > 12) hours -= 12; |
| 160 | } |
| 161 | uint8_t t = hours / 10; |
| 162 | buf[pos++] = t + '0'; |
| 163 | buf[pos++] = hours - (t * 10) + '0'; |
| 164 | buf[pos++] = ':'; |
| 165 | |
| 166 | t = minutes / 10; |
| 167 | buf[pos++] = t + '0'; |
| 168 | buf[pos++] = minutes - (t * 10) + '0'; |
| 169 | if (displaySeconds) |
| 170 | { |
| 171 | buf[pos++] = ':'; |
| 172 | t = sec / 10; |
| 173 | buf[pos++] = t + '0'; |
| 174 | buf[pos++] = sec - (t * 10) + '0'; |
| 175 | } |
| 176 | |
| 177 | buf[pos++] = ' '; |
| 178 | if (PMflag == true) buf[pos++] = 'P'; |
| 179 | else buf[pos++] = 'A'; |
| 180 | buf[pos++] = 'M'; |
| 181 | buf[pos] = '\0'; |
| 182 | |
| 183 | return buf; |
| 184 | } |
| 185 | |
| 186 | |
| 187 | char * millis2duration(uint32_t millis) |
nothing calls this directly
no test coverage detected