summaryrefslogtreecommitdiffstats
path: root/org/madore/damlengine/Calendar.java
diff options
context:
space:
mode:
authorDavid A. Madore <david+git@madore.org>2012-02-26 16:22:49 +0100
committerDavid A. Madore <david+git@madore.org>2012-02-26 16:22:49 +0100
commit7f163c200f7da4a91c0d4dee325752018f821dad (patch)
treed3b29e86f7101788851f60d36ec611d1fcccb6b9 /org/madore/damlengine/Calendar.java
parent045c56305ad585b037aff655ddbf74490e35e5be (diff)
downloaddamlengine-7f163c200f7da4a91c0d4dee325752018f821dad.tar.gz
damlengine-7f163c200f7da4a91c0d4dee325752018f821dad.tar.bz2
damlengine-7f163c200f7da4a91c0d4dee325752018f821dad.zip
Now check day of week on entries.
Diffstat (limited to 'org/madore/damlengine/Calendar.java')
-rw-r--r--org/madore/damlengine/Calendar.java76
1 files changed, 76 insertions, 0 deletions
diff --git a/org/madore/damlengine/Calendar.java b/org/madore/damlengine/Calendar.java
new file mode 100644
index 0000000..d95b602
--- /dev/null
+++ b/org/madore/damlengine/Calendar.java
@@ -0,0 +1,76 @@
+package org.madore.damlengine;
+
+import java.util.Map;
+import java.util.HashMap;
+
+public final class Calendar {
+
+ public final static int monthTab[] = {
+ -59, -28, 0, 31, 61, 92, 122, 153, 184, 214, 245, 275
+ };
+
+ public static long julianDateMarch1(int year) {
+ return 1721120 + year*365 + year/4 - year/100 + year/400;
+ }
+
+ public static boolean isLeap(int year) {
+ return (year%4==0) && ((!(year%100==0))||(year%400==0));
+ }
+
+ public static long julianDate(int year, int month, int day) {
+ return julianDateMarch1(year)
+ + monthTab[month-1]
+ - ((month<=2 && isLeap(year))?1:0)
+ + (day-1);
+ }
+
+ public static int dateDowNumber(int year, int month, int day) {
+ // 0 = Monday ... 6 = Sunday
+ return (int)((julianDate(year, month, day))%7);
+ }
+
+ public final static String dowNamesEn[] = {
+ "Monday", "Tuesday", "Wednesday", "Thursday",
+ "Friday", "Saturday", "Sunday"
+ };
+
+ public final static String dowNamesFr[] = {
+ "lundi", "mardi", "mercredi", "jeudi",
+ "vendredi", "samedi", "dimanche"
+ };
+
+ public final static String dowNamesDe[] = {
+ "Montag", "Dienstag", "Mittwoch", "Donnerstag",
+ "Freitag", "Samstag", "Sonntag"
+ };
+
+ public final static String dowNamesIa[] = {
+ "lunedi", "martedi", "mercuridi", "jovedi",
+ "venerdi", "saturdi", "dominica"
+ };
+
+ public final static Map<String,String[]> dowNames;
+
+ static {
+ dowNames = new HashMap<String,String[]>();
+ dowNames.put("en", dowNamesEn);
+ dowNames.put("fr", dowNamesFr);
+ dowNames.put("de", dowNamesDe);
+ dowNames.put("ia", dowNamesIa);
+ }
+
+ public static String dowName(String lang, int dowNumber) {
+ String[] dowNamesL = dowNames.get(lang);
+ if ( dowNamesL == null )
+ return null;
+ else
+ return dowNamesL[dowNumber];
+ }
+
+ public static String dateDowName(String lang,
+ int year, int month, int day) {
+ int dowNumber = dateDowNumber(year, month, day);
+ return dowName(lang, dowNumber);
+ }
+
+}