# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

#
# Japanese imperial calendar
#
#   Meiji  since 1868-01-01 00:00:00 local time (Gregorian)
#   Taisho since 1912-07-30 00:00:00 local time (Gregorian)
#   Showa  since 1926-12-25 00:00:00 local time (Gregorian)
#   Heisei since 1989-01-08 00:00:00 local time (Gregorian)
calendar.japanese.type: LocalGregorianCalendar
calendar.japanese.eras: \
	name=Meiji,abbr=M,since=-3218832000000;  \
	name=Taisho,abbr=T,since=-1812153600000; \
	name=Showa,abbr=S,since=-1357603200000;  \
	name=Heisei,abbr=H,since=600220800000

#
# Taiwanese calendar
#   Minguo since 1911-01-01 00:00:00 local time (Gregorian)
calendar.taiwanese.type: LocalGregorianCalendar
calendar.taiwanese.eras: \
	name=MinGuo,since=-1830384000000

#
# Thai Buddhist calendar
#   Buddhist Era since -542-01-01 00:00:00 local time (Gregorian)
calendar.thai-buddhist.type: LocalGregorianCalendar
calendar.thai-buddhist.eras: \
	name=BuddhistEra,abbr=B.E.,since=-79302585600000
calendar.thai-buddhist.year-boundary: \
	day1=4-1,since=-79302585600000; \
	day1=1-1,since=-915148800000

#
# Hijrah calendars
#
calendar.hijrah.Hijrah-umalqura: hijrah-config-umalqura.properties
calendar.hijrah.Hijrah-umalqura.type: islamic-umalqura
