From 7f163c200f7da4a91c0d4dee325752018f821dad Mon Sep 17 00:00:00 2001 From: "David A. Madore" Date: Sun, 26 Feb 2012 16:22:49 +0100 Subject: Now check day of week on entries. --- org/madore/damlengine/Calendar.java | 76 +++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 org/madore/damlengine/Calendar.java (limited to 'org/madore/damlengine/Calendar.java') 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 dowNames; + + static { + dowNames = new HashMap(); + 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); + } + +} -- cgit v1.2.3