{
const time_t now = time(NULL);
struct tm now_tm = _get_tm_from_time(now);
- now_tm.tm_hour = atoi(hour);
- now_tm.tm_min = atoi(min);
+
+ if (hour != NULL)
+ now_tm.tm_hour = atoi(hour);
+
+ if (min != NULL)
+ now_tm.tm_min = atoi(min);
return mktime(&now_tm);
}
int _few_arguments(const char* argv[])
{
- printf("ERROR: %s <begin_hours> <begin_minutes>\n", argv[0]);
+ printf("ERROR: %s <begin_hours> <begin_minutes> [<end_hours> <end_minutes>]\n", argv[0]);
return EXIT_FAILURE;
}
int main(const int argc, const char* argv[])
{
- if (argc < 3)
+ if (argc < 3 || argc > 3 && argc < 5)
return _few_arguments(argv);
- const char* hour = argv[1];
- const char* min = argv[2];
- if (!validate_hourstring(hour) || !validate_minutestring(min))
+ const char* begin_hour = argv[1];
+ const char* begin_min = argv[2];
+ const char* end_hour = argv[3];
+ const char* end_min = argv[4];
+
+ if (!validate_hourstring(begin_hour) || !validate_minutestring(begin_min))
+ return _invalid_arguments();
+
+ if (argc == 5 && (!validate_hourstring(end_hour) || !validate_minutestring(end_min)))
return _invalid_arguments();
printf("Version: %s\n\n", PROJECT_VERSION);
- const time_t now = time(NULL);
- const time_t begin = _init_time_with_args(hour, min);
+ const time_t now = _init_time_with_args(argv[3], argv[4]);
+ const time_t begin = _init_time_with_args(begin_hour, begin_min);
const time_t worktime_eight_end = get_eight_hour_end_worktime(begin);
const time_t worktime_max_end = get_ten_hour_end_worktime(begin);