]> gitweb.hhaalo.de Git - feierabend.git/commitdiff
change calc worktime
authorBastian Dehn <hhaalo@arcor.de>
Tue, 11 Jun 2024 17:35:03 +0000 (19:35 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Tue, 11 Jun 2024 17:35:03 +0000 (19:35 +0200)
src/main.c
src/time_format.c

index 043a0800db0c6ef8ef4d54ca32b2d047a66041a8..be68380ab0f49827c78f268dd626f76930cd686c 100644 (file)
@@ -25,9 +25,9 @@ int main(int argc, char* argv[])
 
        time(&begin);
        localtime_r(&begin, &begin_tm);
-       begin_tm.tm_hour = atoi(argv[1]) + begin_tm.tm_gmtoff / ONE_HOUR;
+       begin_tm.tm_hour = atoi(argv[1]);
        begin_tm.tm_min = atoi(argv[2]);
-       begin = mktime(&begin_tm);
+       begin = timelocal(&begin_tm);
 
        time(&now);
        localtime_r(&now, &now_tm);
@@ -76,7 +76,7 @@ int main(int argc, char* argv[])
                work_end_tm.tm_min,
                work_end_tm.tm_zone);
 
-       worktime = get_current_worktime(begin, now) - ONE_HOUR;
+       worktime = get_current_worktime(begin, now);
        get_time_str(worktime, timestr);
        printf("%-25s%s\n", "Aktuelle Arbeitzeit:", timestr);
 
index 90517cac8d7538ec107a5157b417232fcb50269b..06b9edf9d522eb2b516be14d3c81a6254f3fe2c5 100644 (file)
@@ -1,19 +1,23 @@
 #include <stdio.h>
 #include "time_format.h"
 
-void get_time_str(time_t time, char* timestr)
+#define ONE_HOUR 3600
+#define MINUTE 60
+
+void get_time_str(time_t timediff, char* timestr)
 {
-       struct tm time_cal;
+       int hour = timediff / ONE_HOUR;
+       int rest_minutes = timediff % ONE_HOUR;
+       int minutes = rest_minutes / MINUTE;
 
-       if (time < 0) {
-               time *= -1;
-               gmtime_r(&time, &time_cal);
-               sprintf(timestr, "-%02d:%02d", time_cal.tm_hour, time_cal.tm_min);
+       if (timediff < 0) {
+               hour *= -1;
+               minutes *= -1;
+               sprintf(timestr, "-%02d:%02d", hour, minutes);
                return;
        }
 
-       gmtime_r(&time, &time_cal);
-       sprintf(timestr, "%02d:%02d", time_cal.tm_hour, time_cal.tm_min);
+       sprintf(timestr, "%02d:%02d", hour, minutes);
 }
 
 void get_weekday(int wday, char* weekday)