return EXIT_FAILURE;
}
+bool validate_arguments(const int argc, const char* argv[])
+{
+ bool valid = validate_hourstring(argv[1]);
+ valid &= validate_minutestring(argv[2]);
+
+ if (argc == 3)
+ return valid;
+
+ valid &= validate_hourstring(argv[3]);
+ valid &= validate_minutestring(argv[4]);
+
+ return valid;
+}
+
+bool validate_argument_number(const int argc)
+{
+ bool valid = argc == 3;
+ valid |= argc == 5;
+
+ return valid;
+}
+
int main(const int argc, const char* argv[])
{
- if (argc < 3 || (argc > 3 && argc < 5))
+ if (!validate_argument_number(argc))
return _few_arguments(argv);
+ if (!validate_arguments(argc, argv))
+ return _invalid_arguments();
+
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 = _init_time_with_args(end_hour, end_min);