summaryrefslogtreecommitdiffstats
path: root/src/datetime.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/datetime.c')
-rw-r--r--src/datetime.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/datetime.c b/src/datetime.c
index 079266b..59adcb9 100644
--- a/src/datetime.c
+++ b/src/datetime.c
@@ -123,13 +123,14 @@ _datetime_normalize(struct tm *arg_tm, time_t *arg_sec)
struct tm *now_tm;
int wday;
+ now_sec = time(NULL);
+ now_tm = localtime(&now_sec);
+
if (arg_tm->tm_sec == INT_MIN) {
arg_tm->tm_sec = 0;
}
if (arg_tm->tm_mday == INT_MIN && arg_tm->tm_wday == INT_MIN) {
/* No date specified; try today. */
- now_sec = time(NULL);
- now_tm = localtime(&now_sec);
arg_tm->tm_year = now_tm->tm_year;
arg_tm->tm_mon = now_tm->tm_mon;
arg_tm->tm_mday = now_tm->tm_mday;
@@ -151,8 +152,6 @@ _datetime_normalize(struct tm *arg_tm, time_t *arg_sec)
/* Only a weekday specified; try tomorrow or next week. Uses
* same shortcut as above. */
wday = arg_tm->tm_wday;
- now_sec = time(NULL);
- now_tm = localtime(&now_sec);
arg_tm->tm_year = now_tm->tm_year;
arg_tm->tm_mon = now_tm->tm_mon;
arg_tm->tm_mday = now_tm->tm_mday;
@@ -164,8 +163,6 @@ _datetime_normalize(struct tm *arg_tm, time_t *arg_sec)
*arg_sec += (60 * 60 * 24) * (wday - now_tm->tm_wday);
} else if (arg_tm->tm_year == INT_MIN) {
/* No year specified; try this year. */
- now_sec = time(NULL);
- now_tm = localtime(&now_sec);
arg_tm->tm_year = now_tm->tm_year;
*arg_sec = mktime(arg_tm);
if (*arg_sec <= mktime(now_tm)) {