INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
ADD_EXECUTABLE(${PROJECT_NAME}
- main.c
+ feierabend.c
time_format.c
worktime.c
break.c)
\ No newline at end of file
--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+#include "time_format.h"
+#include "worktime.h"
+#include "break.h"
+#include "config.h"
+
+#define ONE_HOUR 3600
+
+typedef struct {
+ time_t* now;
+ time_t* begin;
+ time_t* worktime;
+ struct tm* now_tm;
+ struct tm* begin_tm;
+ struct tm* work_end_tm;
+ char* weekday;
+ char* timestr;
+} feierabend;
+
+void init_feierabend(feierabend* fabend)
+{
+ fabend->now = malloc(sizeof(time_t));
+ fabend->begin = malloc(sizeof(time_t));
+ fabend->worktime = malloc(sizeof(time_t));
+ fabend->weekday = malloc(sizeof(char) * 11);
+ fabend->timestr = malloc(sizeof(char) * 7);
+}
+
+void free_feierabend(feierabend* fabend)
+{
+ free(fabend->now);
+ free(fabend->begin);
+ free(fabend->worktime);
+ free(fabend->weekday);
+ free(fabend->timestr);
+ fabend->now = NULL;
+ fabend->begin = NULL;
+ fabend->worktime = NULL;
+ fabend->weekday = NULL;
+ fabend->timestr = NULL;
+}
+
+int main(int argc, char* argv[])
+{
+ if (argc < 3 || (argc > 3 && argc < 5)) {
+ printf("ERROR: %s <begin_hours> <begin_minutes> [<end_hours> <end_minutes>}\n", argv[0]);
+ return 1;
+ }
+
+ feierabend* fabend = malloc(sizeof(feierabend));
+ init_feierabend(fabend);
+
+ printf("Version: %s\n\n", PROJECT_VERSION);
+
+ time(fabend->begin);
+ fabend->begin_tm = localtime(fabend->begin);
+ fabend->begin_tm->tm_hour = atoi(argv[1]);
+ fabend->begin_tm->tm_min = atoi(argv[2]);
+ *fabend->begin = mktime(fabend->begin_tm);
+ get_weekday(fabend->begin_tm->tm_wday, fabend->weekday);
+ printf("Arbeitsbeginn: %s %02d.%02d.%04d %02d:%02d\n",
+ fabend->weekday,
+ fabend->begin_tm->tm_mday,
+ fabend->begin_tm->tm_mon + 1,
+ fabend->begin_tm->tm_year + 1900,
+ fabend->begin_tm->tm_hour,
+ fabend->begin_tm->tm_min);
+
+ time(fabend->now);
+ fabend->now_tm = localtime(fabend->now);
+ if (argc == 5) {
+ fabend->now_tm->tm_hour = atoi(argv[3]);
+ fabend->now_tm->tm_min = atoi(argv[4]);
+ *fabend->now = mktime(fabend->now_tm);
+ }
+ get_weekday(fabend->now_tm->tm_wday, fabend->weekday);
+ printf("Aktuelle Zeit: %s %02d.%02d.%04d %02d:%02d\n",
+ fabend->weekday,
+ fabend->now_tm->tm_mday,
+ fabend->now_tm->tm_mon + 1,
+ fabend->now_tm->tm_year + 1900,
+ fabend->now_tm->tm_hour,
+ fabend->now_tm->tm_min);
+
+ printf("\n");
+
+ *fabend->worktime = get_eight_hour_end_worktime(*fabend->begin);
+ fabend->work_end_tm = localtime(fabend->worktime);
+ printf("Arbeitsende %02d:%02d Std: %s %02d.%02d.%04d %02d:%02d\n",
+ SOLL_HOUR,
+ SOLL_MINUTES,
+ fabend->weekday,
+ fabend->work_end_tm->tm_mday,
+ fabend->work_end_tm->tm_mon + 1,
+ fabend->work_end_tm->tm_year + 1900,
+ fabend->work_end_tm->tm_hour,
+ fabend->work_end_tm->tm_min);
+
+ *fabend->worktime = get_ten_hour_end_worktime(*fabend->begin);
+ fabend->work_end_tm = localtime(fabend->worktime);
+ printf("Arbeitsende 10:00 Std: %s %02d.%02d.%04d %02d:%02d\n",
+ fabend->weekday,
+ fabend->work_end_tm->tm_mday,
+ fabend->work_end_tm->tm_mon + 1,
+ fabend->work_end_tm->tm_year + 1900,
+ fabend->work_end_tm->tm_hour,
+ fabend->work_end_tm->tm_min);
+
+ printf("\n");
+
+ *fabend->worktime = get_brutto_worktime(*fabend->begin, *fabend->now);
+ get_time_str(*fabend->worktime, fabend->timestr);
+ printf("%-26s% 6s\n", "Brutto Arbeitzeit:", fabend->timestr);
+
+ *fabend->worktime = get_current_worktime(*fabend->begin, *fabend->now);
+ get_time_str(*fabend->worktime, fabend->timestr);
+ printf("%-26s% 6s\n", "Netto Arbeitzeit:", fabend->timestr);
+
+ *fabend->worktime = get_brutto_worktime(*fabend->begin, *fabend->now);
+ *fabend->worktime = get_break_time(*fabend->worktime);
+ get_time_str(*fabend->worktime, fabend->timestr);
+ printf("%-26s% 6s\n", "Aktuelle Pausenzeit:", fabend->timestr);
+
+ printf("\n");
+
+ *fabend->worktime = get_current_worktime_diff_to_end_eight_hour(*fabend->begin, *fabend->now);
+ get_time_str(*fabend->worktime, fabend->timestr);
+ printf("Arbeitzeit bis %02d:%02d Std: % 6s\n",
+ SOLL_HOUR,
+ SOLL_MINUTES,
+ fabend->timestr);
+
+ *fabend->worktime = get_current_worktime_diff_to_end_ten_hour(*fabend->begin, *fabend->now);
+ get_time_str(*fabend->worktime, fabend->timestr);
+ printf("Arbeitzeit bis 10:00 Std: % 6s\n", fabend->timestr);
+
+ free_feierabend(fabend);
+ free(fabend);
+ fabend = NULL;
+
+ return 0;
+}
\ No newline at end of file
+++ /dev/null
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include "time_format.h"
-#include "worktime.h"
-#include "break.h"
-#include "config.h"
-
-#define ONE_HOUR 3600
-
-typedef struct {
- time_t* now;
- time_t* begin;
- time_t* worktime;
- struct tm* now_tm;
- struct tm* begin_tm;
- struct tm* work_end_tm;
- char* weekday;
- char* timestr;
-} feierabend;
-
-void init_feierabend(feierabend* fabend)
-{
- fabend->now = malloc(sizeof(time_t));
- fabend->begin = malloc(sizeof(time_t));
- fabend->worktime = malloc(sizeof(time_t));
- fabend->weekday = malloc(sizeof(char) * 11);
- fabend->timestr = malloc(sizeof(char) * 7);
-}
-
-void free_feierabend(feierabend* fabend)
-{
- free(fabend->now);
- free(fabend->begin);
- free(fabend->worktime);
- free(fabend->weekday);
- free(fabend->timestr);
- fabend->now = NULL;
- fabend->begin = NULL;
- fabend->worktime = NULL;
- fabend->weekday = NULL;
- fabend->timestr = NULL;
-}
-
-int main(int argc, char* argv[])
-{
- if (argc < 3 || (argc > 3 && argc < 5)) {
- printf("ERROR: %s <begin_hours> <begin_minutes> [<end_hours> <end_minutes>}\n", argv[0]);
- return 1;
- }
-
- feierabend* fabend = malloc(sizeof(feierabend));
- init_feierabend(fabend);
-
- printf("Version: %s\n\n", PROJECT_VERSION);
-
- time(fabend->begin);
- fabend->begin_tm = localtime(fabend->begin);
- fabend->begin_tm->tm_hour = atoi(argv[1]);
- fabend->begin_tm->tm_min = atoi(argv[2]);
- *fabend->begin = mktime(fabend->begin_tm);
- get_weekday(fabend->begin_tm->tm_wday, fabend->weekday);
- printf("Arbeitsbeginn: %s %02d.%02d.%04d %02d:%02d\n",
- fabend->weekday,
- fabend->begin_tm->tm_mday,
- fabend->begin_tm->tm_mon + 1,
- fabend->begin_tm->tm_year + 1900,
- fabend->begin_tm->tm_hour,
- fabend->begin_tm->tm_min);
-
- time(fabend->now);
- fabend->now_tm = localtime(fabend->now);
- if (argc == 5) {
- fabend->now_tm->tm_hour = atoi(argv[3]);
- fabend->now_tm->tm_min = atoi(argv[4]);
- *fabend->now = mktime(fabend->now_tm);
- }
- get_weekday(fabend->now_tm->tm_wday, fabend->weekday);
- printf("Aktuelle Zeit: %s %02d.%02d.%04d %02d:%02d\n",
- fabend->weekday,
- fabend->now_tm->tm_mday,
- fabend->now_tm->tm_mon + 1,
- fabend->now_tm->tm_year + 1900,
- fabend->now_tm->tm_hour,
- fabend->now_tm->tm_min);
-
- printf("\n");
-
- *fabend->worktime = get_eight_hour_end_worktime(*fabend->begin);
- fabend->work_end_tm = localtime(fabend->worktime);
- printf("Arbeitsende %02d:%02d Std: %s %02d.%02d.%04d %02d:%02d\n",
- SOLL_HOUR,
- SOLL_MINUTES,
- fabend->weekday,
- fabend->work_end_tm->tm_mday,
- fabend->work_end_tm->tm_mon + 1,
- fabend->work_end_tm->tm_year + 1900,
- fabend->work_end_tm->tm_hour,
- fabend->work_end_tm->tm_min);
-
- *fabend->worktime = get_ten_hour_end_worktime(*fabend->begin);
- fabend->work_end_tm = localtime(fabend->worktime);
- printf("Arbeitsende 10:00 Std: %s %02d.%02d.%04d %02d:%02d\n",
- fabend->weekday,
- fabend->work_end_tm->tm_mday,
- fabend->work_end_tm->tm_mon + 1,
- fabend->work_end_tm->tm_year + 1900,
- fabend->work_end_tm->tm_hour,
- fabend->work_end_tm->tm_min);
-
- printf("\n");
-
- *fabend->worktime = get_brutto_worktime(*fabend->begin, *fabend->now);
- get_time_str(*fabend->worktime, fabend->timestr);
- printf("%-26s% 6s\n", "Brutto Arbeitzeit:", fabend->timestr);
-
- *fabend->worktime = get_current_worktime(*fabend->begin, *fabend->now);
- get_time_str(*fabend->worktime, fabend->timestr);
- printf("%-26s% 6s\n", "Netto Arbeitzeit:", fabend->timestr);
-
- *fabend->worktime = get_brutto_worktime(*fabend->begin, *fabend->now);
- *fabend->worktime = get_break_time(*fabend->worktime);
- get_time_str(*fabend->worktime, fabend->timestr);
- printf("%-26s% 6s\n", "Aktuelle Pausenzeit:", fabend->timestr);
-
- printf("\n");
-
- *fabend->worktime = get_current_worktime_diff_to_end_eight_hour(*fabend->begin, *fabend->now);
- get_time_str(*fabend->worktime, fabend->timestr);
- printf("Arbeitzeit bis %02d:%02d Std: % 6s\n",
- SOLL_HOUR,
- SOLL_MINUTES,
- fabend->timestr);
-
- *fabend->worktime = get_current_worktime_diff_to_end_ten_hour(*fabend->begin, *fabend->now);
- get_time_str(*fabend->worktime, fabend->timestr);
- printf("Arbeitzeit bis 10:00 Std: % 6s\n", fabend->timestr);
-
- free_feierabend(fabend);
- free(fabend);
- fabend = NULL;
-
- return 0;
-}
\ No newline at end of file