now create java date calendar

create - simpledateformat java



Calendario maya en java (5)

¿Se ha acabado tu calendario ahora? :-)

¿Cómo puedo usar el calendario Maya en Java?


LOL, intente configurar la última fecha seleccionable para el 21 de diciembre de 2012? ¿Pero realmente no termina ahí, simplemente comienza de nuevo, así que quieres comenzar a contar nuevamente después del 21 de diciembre de 2012?


La mejor manera de usar otros calendarios / cronologías en Java es la excelente biblioteca Joda-Time . No tiene una cronología maya en sí misma, pero podría corregir su propia implementación de las reglas mayas y enchufarla. No debería ser demasiado onerosa.


Si realmente está buscando una solución, esta implementación de Maya Calendar se ve bastante bien.

Implementa un calendario de maya Tzolk''in utilizando el Calendario GregorianCalendar de Java. Las fechas se pueden recuperar tanto en formato gregoriano como en formato Tzolk''in.

Aquí están las partes principales:

[...] /** parses Date specified in Long Count format, e.g. "12.19.19.17.19" */ public void parseLongCountDate (String longCountDate) { String [] components = longCountDate.split("//."); try { if (components.length != 5) throw new Exception("Expecting 5 numbers separated by dots"); int baktuns = Integer.valueOf(components[0]); int katuns = Integer.valueOf(components[1]); int tuns = Integer.valueOf(components[2]); int winals = Integer.valueOf(components[3]); int kins = Integer.valueOf(components[4]); set (baktuns, katuns, tuns, winals, kins); } catch (Throwable e) { throw new IllegalArgumentException("Invalid long count date format: " + e.getMessage()); } } /** Set date to given long count date */ public void set (int baktuns, int katuns, int tuns, int uinals, int kins) { assert MayaTimeUnit.Kin.toDays (1) == 1; daysSinceGreatCycle = MayaTimeUnit.Baktun.toDays (baktuns) + MayaTimeUnit.Katun.toDays(katuns) + MayaTimeUnit.Tun.toDays(tuns) + MayaTimeUnit.Winal.toDays(uinals) + kins; } [...] /** @return day name number in Tzolk''in calendar, e.g. it returns 0 (Ajaw) for the day "4 Ajaw" */ public Tzolkin toTzolkinDayName () { // The Tzolk''in date is counted forward from 4 Ajaw. return Tzolkin.DAYS[(daysSinceGreatCycle + 19) % 20]; // relative to Ajaw } /** @return day number in Tzolk''in calendar, e.g. it returns 4 for the day "4 Ajaw" */ public int toTzolkinDayNumber () { // The Tzolk''in date is counted forward from 4 Ajaw. return (daysSinceGreatCycle + 4) % 13; } [...] /** @return day name number in Haab calendar, e.g. it returns Yaxkin (5) for the day "14 Yaxk''in" */ public Haab toHaabDayName () { int d = (daysSinceGreatCycle + 349) % 365; return Haab.DAYS[d / 20]; } /** @return day number in Haab calendar, e.g. it returns 14 for the day "14 Yaxk''in" */ public int toHaabDayNumber () { int d = (daysSinceGreatCycle + 349) % 365; return d % 20 - 1; } [...] /** @return Gregorian calendar representation of currently set date */ public String toGregorianString () { Calendar c = toGregorianDate (); return format.format(c.getTime()); } /** @return Converts currently defined date into Gregorian calendar */ public Calendar toGregorianDate () { Calendar c = (Calendar)greatCycleStartDate.clone(); c.add(Calendar.DAY_OF_YEAR, daysSinceGreatCycle); return c; } [...]

En cualquier caso: Buena pregunta :-)


Usa Joda-Time . Vaya, lo siento, solo un reflejo al leer una pregunta sobre java.util.Calendar ;-)

Hay algunos applets de Java en la web que pueden ser útiles para usted.