day report: display total hours

This commit is contained in:
Simon Lieb 2022-02-11 18:16:55 +01:00
parent a23ce91358
commit 843b9efa4f

16
stt.c
View file

@ -48,7 +48,7 @@ int timesnode_heigh(struct timesnode *);
int timesnode_getbalance(struct timesnode *); int timesnode_getbalance(struct timesnode *);
struct timesnode *timesnode_rightrotate(struct timesnode *); struct timesnode *timesnode_rightrotate(struct timesnode *);
struct timesnode *timesnode_leftrotate(struct timesnode *); struct timesnode *timesnode_leftrotate(struct timesnode *);
void timesnode_print(struct timesnode *, time_t); int timesnode_print(struct timesnode *, time_t);
void timesnode_free(struct timesnode *); void timesnode_free(struct timesnode *);
void void
@ -266,17 +266,18 @@ timesnode_stop(struct timesnode * p, time_t endtime)
return p; return p;
} }
void int
timesnode_print(struct timesnode * p, time_t aftertime) timesnode_print(struct timesnode * p, time_t aftertime)
{ {
time_t *nowtime; time_t *nowtime;
int duration = 0; int duration = 0;
int totalDuration = 0;
if (p == NULL) { if (p == NULL) {
return; return 0;
} }
if (p->left != NULL) { if (p->left != NULL) {
timesnode_print(p->left, aftertime); totalDuration += timesnode_print(p->left, aftertime);
} }
if (p->starttime > aftertime || p->endtime > aftertime || p->endtime == 0) { if (p->starttime > aftertime || p->endtime > aftertime || p->endtime == 0) {
printf("task: %s\n", p->task); printf("task: %s\n", p->task);
@ -298,10 +299,13 @@ timesnode_print(struct timesnode * p, time_t aftertime)
printf("duration(hours): %.2f\n\n", duration / 3600.0); printf("duration(hours): %.2f\n\n", duration / 3600.0);
free(nowtime); free(nowtime);
} }
totalDuration += duration;
} }
if (p->right != NULL) { if (p->right != NULL) {
timesnode_print(p->right, aftertime); totalDuration += timesnode_print(p->right, aftertime);
} }
return totalDuration;
} }
void void
@ -390,7 +394,7 @@ default:
today.tm_min = 0; today.tm_min = 0;
today.tm_hour = 0; today.tm_hour = 0;
timesnode_print(timestree, mktime(&today)); printf("total: %.2f\n", timesnode_print(timestree, mktime(&today)) / 3600.0);
} }
fclose(fp); fclose(fp);