Java applet support required to display the lunar calendar.

The applet displays a month of the Gregorian calendar (dương lịch) with the corresponding dates of the lunar calendar used in Vietnam (âm lịch). The calculations are carried out with the algorithms described in the book Calendrical Calculations by Edward M. Reingold and Nachum Dershowitz, adapted for Hanoi time (GMT+7).

Cách tính âm lịch Việt Nam (in Vietnamese) | Rules of Vietnamese lunar calendar (in English).

To print the calendar, please use the JavaScript version!

You can choose to display either the official or the astronomical Vietnamese lunar calendar. The official (historic) calendar ("lịch pháp định", "lịch lịch sử") shows the dates actually used in history. The astronomical (proleptic) lunar calendar is the modern calendar projected back to the past. That is, it is computed with modern rules also for times when those rules were not yet adapted. (The modern rules are adapted in the whole Vietnam in 1976, after the reunification). Since 1976 the two calendars are the same. The Vietnamese official calendar is reconstructed based on Hoang Xuan Han's investigations on Vietnamese calendars. It is more accurate for reading historical sources. The historic calendar is reliable for years since 1301.

When the applet is loaded it shows the current month. The current day is displayed on a different background color. The lunar day is printed in the lower right corner of the cell and its name is printed below the table. Lunar leap months (tháng nhuận) are marked with an 'N', e.g., 12/2 N. The major and minor solar terms (tiết khí) are also indicated.

In history, sometimes the country was divided and different calendars were used in different regions. The historical calendar takes that fact into account and marks the dates where differences exist with a red X in the upper right corner. (See the historic calendar of 02/1968 for an example.) Between 1955 and 1975 the additional lunar day is the one according to the calendar used in South Vietnam. Between 1789 and 1802 the lunar date in square bracket (upper right) is the date of the calendar used by the Tay Son dynasty.

Initially the current day is selected. You can click on any other day to select it. When selected, detailed information about the date are displayed.

To display another month please select the month and the year. The years BC must be entered as negative number, e.g., 2000 BC as -1999. (There is no year 0 BC or 0 AD! Astronomical year 0 is year 1 BC). You can move to the previous or next month using the buttons labelled "<<" and ">>". To change back to the current day please click the button "Today". You can also use the "arrow keys" to move to another day; PgUp and PgDown to go to last/next month or the keys HOME/END to move to last/next year.

If you would like to calculate the lunar calendar for another location, please replace the number 420 in the field "GMT +" with the difference in minutes between that location and GMT. For example, California is 8 hours behind GMT, so you would enter the value -480 (= -8*60) in the field "GMT +". This feature is especially useful for calculating historical Vietnamese calendar: in the past, sometimes the calendar was calculated based on other time zones. (For example, GMT+480 min was used in South Vietnam until 1975 and in North Vietnam before 7/8/1967).

If you wonder how the Vietnamese lunar calendar can be calculated for a date far in the future or back in the past, or why Vietnamese New Year and Chinese New Year sometimes fall on different days, you can find some explanations here. You will find there also some links to more calendar resources and source code for doing the required calculations.

Calendar conversion

From Gregorian date to lunar date

Let's assume we want to know what lunar date is June 3, 1967. Thus we have found out that June 3, 1967 corresponds to day 26, month 4 of the lunar calendar.

The lunar year is actually not numbered like in the Gregorian calendar. But for convenience we count the lunar year as follows: take the Gregorian year if the date is on or after the Lunar New Year (Têt) in that year, otherwise substract 1. Because the lunar month is greater than the solar month before Têt and less than the solar month after that, we can determine the lunar year as follows:

IF (Lunar month < Gregorian month) THEN (Lunar year = Gregorian year) ELSE (Lunar year = Gregorian year - 1)

In our example, lunar month (4) is less than Gregorian month (6), so the lunar year is the same as the Gregorian year. That is, June 3, 1967 Gregorian is April 26, 1967 according to the lunar calendar.

From lunat date to Gregorian date

We want to convert the lunar date 27/04/1967 to Gregorian date. So we found out that the lunar date 27/04/1967 is June 4, 1967 of the Gregorian calendar.

If we want to convert lunar dates at the end of the lunar year, use Gregorian month January of the next year as the first guess and move forward or backward as needed. In this way we can find that Feb 3, 1967 (Gregorian) is lunar 24/12/1966.

Lunar calendar calculations

The applet also calculates certain data for the Vietnamese lunar calendar (a^m (Click "Calendar Tool" to switch to the calculation tool.) The following functions are supported:

Just select a function, enter the year and press "Compute".


I thank Edward M. Reingold and Nachum Dershowitz for their permission to use their Calendrical Calculations Software Package in my calculations. Thanks to all users who have commented on the software and encouraged me to keep improving it.

Change log

You can download the program to use offline. If you need a standalone EXE file for use on Windows you can download LunarCal.exe (One possible use is to call the program and display the result in your own program). Lunar calendar programs for handheld devices (mobile phones and Palm PDAs) can be downloaded from my J2ME page. Please send your comments, questions, suggestions, corrections to the author Hồ Ngọc Đức. You can also share your opinion with other users using my guestbook.