class VietnameseDate {
// Lunar Year - Năm âm lịch
year: number;
// Lunar Month - Tháng âm lich
month: number;
// Lunar Day of Month - Ngày âm lịch trong tháng
day: number;
// Is leap month - Cho biết có phải tháng nhuận không
isLeapMonth: boolean;
// Solar Date - Ngày dương lịch
solarDate: Date;
// The day number from 01/01/4713 BC (in Julian calendar) - Số ngày tính từ ngày 1 tháng 1 năm 4713 trước công nguyên (theo lịch Julian)
juliusDayNumber: number;
// Celestial stem of day - Can của ngày
celestialStemOfDay: string
// Terrestrial branch of day - Chi của ngày
terrestrialBranchOfDay: string
// Celestial stem of month - Can của tháng
celestialStemOfMonth: string
// Terrestrial branch of month - Chi của tháng
terrestrialBranchOfMonth: string
// Celestial stem of year - Can của năm
celestialStemOfYear: string
// Terrestrial branch of year - Chi của năm
terrestrialBranchOfYear: string
// Propitious hours - Các giờ hoàng đạo
propitiousHours: string
// Convert to string - Chuyển đổi thành chuỗi
// formatString: Support 'd', 'D', 'm', 'M', 's', 'L', 'F' - Hỗ trợ 'd', 'D', 'm', 'M', 's', 'L', 'F'
format(formatString: string): string
// Return leap month of year, return 0 if year does not have leap month - Trả về tháng nhuận của năm, nếu không phải năm nhuận thì trả về 0.
static getLeapMonth(lunarYear: number): number
}
import VietnameseDate from 'vietnamese-date';
const lunarDate = new VietnameseDate(2021, 10, 23, false);
console.log(lunarDate);
import VietnameseDate from 'vietnamese-date';
// Gregorian date must be at Vietnam's timezone - Ngày dương phải được khai báo ở timezone của Việt Nam
const solarDate = new Date('2021-11-27T00:00:00+07:00');
// Gregorian date without specifying a timezone may convert to the wrong lunar date in some cases - Ngày dương lịch mà không chỉ định timezone có thể chuyển đổi sang ngày âm lịch sai trong một số trường hợp
// const solarDate = new Date(2021, 10, 27);
const lunarDate = new VietnameseDate(solarDate);
console.log(lunarDate);
console.log(lunarDate.solarDate); // solarDate in Vietnam's timezone - Ngày dương được quy về timezone của Việt Nam
console.log("Format lunar date without format string:", lunarDate.format());
// Format lunar date without format string: 07/10/2021
// Format lunar date without format string: 26/04N/2020
console.log("Format lunar date with d:", lunarDate.format("d"));
// Format lunar date with d: 07/10/2021
// Format lunar date with d: 26/04N/2020
console.log("Format lunar date with D:", lunarDate.format("D"));
// Format lunar date with D: Thứ năm, mùng 7 tháng Mười năm 2021
// Format lunar date with D: Thứ tư, ngày 26 tháng Tư (nhuận) năm 2020
console.log("Format lunar date with m:", lunarDate.format("m"));
// Format lunar date with m: 07/10
// Format lunar date with m: 26/04N
console.log("Format lunar date with M:", lunarDate.format("M"));
// Format lunar date with M: mùng 7 tháng Mười
// Format lunar date with M: 26 tháng Tư (nhuận)
console.log("Format lunar date with s:", lunarDate.format("s"));
// Format lunar date with s: 2021 / 10 / 07
// Format lunar date with s: 2020 / 04N/ 26
console.log("Format lunar date with L:", lunarDate.format("L"));
// Format lunar date with L: ngày Quý Hợi tháng Kỷ Hợi năm Tân Sửu
// Format lunar date with L: ngày Tân Mão tháng Tân Tỵ (nhuận) năm Canh Tý
console.log("Format lunar date with F:", lunarDate.format("F"));
// Format lunar date with F: Thứ năm, mùng 7 tháng Mười năm 2021 (ngày Quý Hợi tháng Kỷ Hợi năm Tân Sửu)
// Format lunar date with F: Thứ tư, ngày 26 tháng Tư (nhuận) năm 2020 (ngày Tân Mão tháng Tân Tỵ (nhuận) năm Canh Tý)
import VietnameseDate from 'vietnamese-date';
for (let year = 2020; year <= 2030; year++) {
console.log(year, ": ", VietnameseDate.getLeapMonth(year));
}
Version 1.1.1
- Fixed bugs
Version 1.1
- New
- Add new constructor VietnameseDate(isoDate: string)
- Changes
- All calculations are based on UTC+07:00 timezone