Index: .gitignore
===================================================================
--- .gitignore	(revision b8b031f06566e15c061fb7c26b8246dad9e23ab0)
+++ .gitignore	(revision 465ac5e07d480775183ae99dd02cb2dcb9e6b13e)
@@ -9,2 +9,6 @@
 tools/xcw/demo/viewer
 /.cache
+/PKG
+/downloads
+/amd64-helenos
+.cursorignore
Index: .vscode/settings.json
===================================================================
--- .vscode/settings.json	(revision 465ac5e07d480775183ae99dd02cb2dcb9e6b13e)
+++ .vscode/settings.json	(revision 465ac5e07d480775183ae99dd02cb2dcb9e6b13e)
@@ -0,0 +1,3 @@
+{
+    "cmake.ignoreCMakeListsMissing": true
+}
Index: uspace/app/date/date.c
===================================================================
--- uspace/app/date/date.c	(revision b8b031f06566e15c061fb7c26b8246dad9e23ab0)
+++ uspace/app/date/date.c	(revision 465ac5e07d480775183ae99dd02cb2dcb9e6b13e)
@@ -1,3 +1,4 @@
 /*
+ * Copyright (c) 2025 Wayne Michael Thornton (WMT) <wmthornton-dev@outlook.com>
  * Copyright (c) 2012 Maurizio Lombardi
  * All rights reserved.
@@ -195,5 +196,5 @@
 
 /** Read the day, month and year from a string
- *  with the following format: DD/MM/YYYY
+ *  with the following format: DD/MM/YYYY or MM/DD/YYYY
  */
 static errno_t
@@ -202,4 +203,6 @@
 	errno_t rc;
 	uint32_t tmp;
+	uint32_t first_num;
+	uint32_t second_num;
 
 	if (str_size(wdate) != 10) /* str_size("DD/MM/YYYY") == 10 */
@@ -211,20 +214,36 @@
 	}
 
-	rc = str_uint32_t(&wdate[0], NULL, 10, false, &tmp);
-	if (rc != EOK)
-		return rc;
-
-	t->tm_mday = tmp;
-
-	rc = str_uint32_t(&wdate[3], NULL, 10, false, &tmp);
-	if (rc != EOK)
-		return rc;
-
-	t->tm_mon = tmp - 1;
+	/* Parse first number */
+	rc = str_uint32_t(&wdate[0], NULL, 10, false, &first_num);
+	if (rc != EOK)
+		return rc;
+
+	/* Parse second number */
+	rc = str_uint32_t(&wdate[3], NULL, 10, false, &second_num);
+	if (rc != EOK)
+		return rc;
+
+	/* Determine format based on first number */
+	if (first_num > 12) {
+		/* First number is day (DD/MM/YYYY format) */
+		t->tm_mday = first_num;
+		t->tm_mon = second_num - 1;
+	} else if (second_num > 12) {
+		/* Second number is day (MM/DD/YYYY format) */
+		t->tm_mon = first_num - 1;
+		t->tm_mday = second_num;
+	} else {
+		/* Ambiguous case - assume DD/MM/YYYY format */
+		t->tm_mday = first_num;
+		t->tm_mon = second_num - 1;
+	}
 
 	rc = str_uint32_t(&wdate[6], NULL, 10, false, &tmp);
+	if (rc != EOK)
+		return rc;
+
 	t->tm_year = tmp - 1900;
 
-	return rc;
+	return EOK;
 }
 
@@ -331,6 +350,6 @@
 usage(void)
 {
-	printf("Usage: date [-d DD/MM/YYYY] [-t HH:MM[:SS]]\n");
-	printf("       -d   Change the current date\n");
+	printf("Usage: date [-d DD/MM/YYYY|MM/DD/YYYY] [-t HH:MM[:SS]]\n");
+	printf("       -d   Change the current date (supports both DD/MM/YYYY and MM/DD/YYYY formats)\n");
 	printf("       -t   Change the current time\n");
 	printf("       -h   Display this information\n");
Index: uspace/app/date_cfg/date_cfg.c
===================================================================
--- uspace/app/date_cfg/date_cfg.c	(revision b8b031f06566e15c061fb7c26b8246dad9e23ab0)
+++ uspace/app/date_cfg/date_cfg.c	(revision 465ac5e07d480775183ae99dd02cb2dcb9e6b13e)
@@ -256,8 +256,8 @@
 	const char *date_str = ui_entry_get_text(date_cfg->date_entry);
 	const char *time_str = ui_entry_get_text(date_cfg->time_entry);
-	int day, month, year;
+	int first_num, second_num, year;
 	int hour, min, sec;
 
-	if (sscanf(date_str, "%d/%d/%d", &day, &month, &year) != 3)
+	if (sscanf(date_str, "%d/%d/%d", &first_num, &second_num, &year) != 3)
 		return EINVAL;
 
@@ -265,5 +265,22 @@
 		return EINVAL;
 
-	if (day < 1 || day > 31 || month < 1 || month > 12 || year < 1900)
+	/* Determine format based on first number */
+	if (first_num > 12) {
+		/* First number is day (DD/MM/YYYY format) */
+		date_cfg->current_time.tm_mday = first_num;
+		date_cfg->current_time.tm_mon = second_num - 1;
+	} else if (second_num > 12) {
+		/* Second number is day (MM/DD/YYYY format) */
+		date_cfg->current_time.tm_mon = first_num - 1;
+		date_cfg->current_time.tm_mday = second_num;
+	} else {
+		/* Ambiguous case - assume DD/MM/YYYY format */
+		date_cfg->current_time.tm_mday = first_num;
+		date_cfg->current_time.tm_mon = second_num - 1;
+	}
+
+	if (date_cfg->current_time.tm_mday < 1 || date_cfg->current_time.tm_mday > 31 || 
+	    date_cfg->current_time.tm_mon < 0 || date_cfg->current_time.tm_mon > 11 || 
+	    year < 1900)
 		return EINVAL;
 
@@ -271,6 +288,4 @@
 		return EINVAL;
 
-	date_cfg->current_time.tm_mday = day;
-	date_cfg->current_time.tm_mon = month - 1;
 	date_cfg->current_time.tm_year = year - 1900;
 	date_cfg->current_time.tm_hour = hour;
