Changes in uspace/app/date/date.c [465ac5e:09ab0a9a] in mainline
- File:
-
- 1 edited
-
uspace/app/date/date.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/date/date.c
r465ac5e r09ab0a9a 1 1 /* 2 * Copyright (c) 2025 Wayne Michael Thornton (WMT) <wmthornton-dev@outlook.com>3 2 * Copyright (c) 2012 Maurizio Lombardi 4 3 * All rights reserved. … … 196 195 197 196 /** Read the day, month and year from a string 198 * with the following format: DD/MM/YYYY or MM/DD/YYYY197 * with the following format: DD/MM/YYYY 199 198 */ 200 199 static errno_t … … 203 202 errno_t rc; 204 203 uint32_t tmp; 205 uint32_t first_num;206 uint32_t second_num;207 204 208 205 if (str_size(wdate) != 10) /* str_size("DD/MM/YYYY") == 10 */ … … 214 211 } 215 212 216 /* Parse first number */ 217 rc = str_uint32_t(&wdate[0], NULL, 10, false, &first_num); 213 rc = str_uint32_t(&wdate[0], NULL, 10, false, &tmp); 218 214 if (rc != EOK) 219 215 return rc; 220 216 221 /* Parse second number */ 222 rc = str_uint32_t(&wdate[3], NULL, 10, false, &second_num); 217 t->tm_mday = tmp; 218 219 rc = str_uint32_t(&wdate[3], NULL, 10, false, &tmp); 223 220 if (rc != EOK) 224 221 return rc; 225 222 226 /* Determine format based on first number */ 227 if (first_num > 12) { 228 /* First number is day (DD/MM/YYYY format) */ 229 t->tm_mday = first_num; 230 t->tm_mon = second_num - 1; 231 } else if (second_num > 12) { 232 /* Second number is day (MM/DD/YYYY format) */ 233 t->tm_mon = first_num - 1; 234 t->tm_mday = second_num; 235 } else { 236 /* Ambiguous case - assume DD/MM/YYYY format */ 237 t->tm_mday = first_num; 238 t->tm_mon = second_num - 1; 239 } 223 t->tm_mon = tmp - 1; 240 224 241 225 rc = str_uint32_t(&wdate[6], NULL, 10, false, &tmp); 242 if (rc != EOK)243 return rc;244 245 226 t->tm_year = tmp - 1900; 246 227 247 return EOK;228 return rc; 248 229 } 249 230 … … 350 331 usage(void) 351 332 { 352 printf("Usage: date [-d DD/MM/YYYY |MM/DD/YYYY] [-t HH:MM[:SS]]\n");353 printf(" -d Change the current date (supports both DD/MM/YYYY and MM/DD/YYYY formats)\n");333 printf("Usage: date [-d DD/MM/YYYY] [-t HH:MM[:SS]]\n"); 334 printf(" -d Change the current date\n"); 354 335 printf(" -t Change the current time\n"); 355 336 printf(" -h Display this information\n");
Note:
See TracChangeset
for help on using the changeset viewer.
