micro-utils/include/libmu/duration.h

49 lines
591 B
C
Raw Normal View History

2023-12-04 18:51:07 +00:00
#ifndef _DURATION_H
#define _DURATION_H
#include <string.h>
unsigned long long parse_uint(const char *str) {
char *p = NULL;
unsigned long long res = strtoull(str, &p, 0);
2023-12-05 12:01:24 +00:00
/* Parse suffix */
if (*p) {
switch (p[0]) {
case 'm':
res *= 60;
break;
case 'h':
res *= 3600;
break;
case 'd':
res *= 86400;
break;
case 's':
default:
break;
}
}
2023-12-04 18:51:07 +00:00
return res;
}
unsigned long long mu_parse_duration(const char *arg) {
if (strchr(arg, '.')) {
2023-12-05 12:01:24 +00:00
/* TODO */
2023-12-04 18:51:07 +00:00
}
2023-12-05 12:01:24 +00:00
else {
/* Sec */
2023-12-04 18:51:07 +00:00
return parse_uint(arg) * 1000000;
2023-12-05 12:01:24 +00:00
}
2023-12-04 18:51:07 +00:00
return 0;
}
#endif