day report: display total hours
This commit is contained in:
parent
a23ce91358
commit
843b9efa4f
1 changed files with 10 additions and 6 deletions
16
stt.c
16
stt.c
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue