Calendar manipulation routines from Scott E. Lee.
[gedcom-parse.git] / gedcom / calendar / dow.c
diff --git a/gedcom/calendar/dow.c b/gedcom/calendar/dow.c
new file mode 100644 (file)
index 0000000..f738959
--- /dev/null
@@ -0,0 +1,71 @@
+/* This file is taken from http://www.genealogy.org/~scottlee/
+   Only this initial comment has been added.  The next comment
+   gives the original copyright notice.
+*/
+
+
+/* $selId: dow.c,v 2.0 1995/10/24 01:13:06 lees Exp $
+ * Copyright 1993-1995, Scott E. Lee, all rights reserved.
+ * Permission granted to use, copy, modify, distribute and sell so long as
+ * the above copyright and this permission statement are retained in all
+ * copies.  THERE IS NO WARRANTY - USE AT YOUR OWN RISK.
+ */
+
+/**************************************************************************
+ *
+ * These are the externally visible components of this file:
+ *
+ *     int
+ *     DayOfWeek(
+ *         long int sdn);
+ *
+ * Convert a SDN to a day-of-week number (0 to 6).  Where 0 stands for
+ * Sunday, 1 for Monday, etc. and 6 stands for Saturday.
+ *
+ *     char *DayNameShort[7];
+ *
+ * Convert a day-of-week number (0 to 6), as returned from DayOfWeek(), to
+ * the abbreviated (three character) name of the day.
+ *
+ *     char *DayNameLong[7];
+ *
+ * Convert a day-of-week number (0 to 6), as returned from DayOfWeek(), to
+ * the name of the day.
+ *
+ **************************************************************************/
+
+#include "sdncal.h"
+
+int
+DayOfWeek(
+    long int sdn)
+{
+    int dow;
+
+    dow = (sdn + 1) % 7;
+    if (dow >= 0) {
+       return(dow);
+    } else {
+       return(dow + 7);
+    }
+}
+
+char *DayNameShort[7] = {
+    "Sun",
+    "Mon",
+    "Tue",
+    "Wed",
+    "Thu",
+    "Fri",
+    "Sat"
+};
+
+char *DayNameLong[7] = {
+    "Sunday",
+    "Monday",
+    "Tuesday",
+    "Wednesday",
+    "Thursday",
+    "Friday",
+    "Saturday"
+};