fork download
  1. #include <stdio.h>
  2. int hmstosec(const char *hms) {
  3. #define _(i) ((hms[i] - '0') * 10 + (hms[i + 1] - '0'))
  4. return _(0) * 3600 + _(3) * 60 + _(6);
  5. #undef _
  6. }
  7. char *sectohms(char *buff, int sec) {
  8. #define _(i, value) buff[i] = '0' + (value) / 10, buff[i + 1] = '0' + (value) % 10
  9. return _(0, sec % 86400 / 3600), buff[2] = ':', _(3, sec % 3600 / 60), buff[5] = ':', _(6, sec % 60), buff[8] = '\0', buff;
  10. #undef _
  11. }
  12. char *f(char *buff, const char *hms) {
  13. return sectohms(buff, hmstosec(hms) + 1);
  14. }
  15. int main() {
  16. char buff[32];
  17. printf("%s\n", f(buff, "00:00:00"));
  18. printf("%s\n", f(buff, "23:59:59"));
  19. return 0;
  20. }
  21.  
Success #stdin #stdout 0s 5280KB
stdin
Standard input is empty
stdout
00:00:01
00:00:00