LỊCH VẠN NIÊN TTL-EXCEL

19:22 |

TẢI LỊCH VẠN NIÊN BẢN MỚI NHẤT

(có nhiều ứng dụng thiên văn, chạy trên máy tính)


Link dự phòng: 
http://chuyennha.today/wp-content/uploads/2016/06/LICH-VAN-NIEN-EXCEL-V1.2-1.xls

Link dự phòng 2:
Lịch vạn sự 2017

(Đã chỉnh sử và cập nhật lại ngày 23/6/2016)

Tải file hướng dẫn

http://chuyennha.today/wp-content/uploads/2016/06/HUONG-DAN-SD-LICH-VAN-NIEN.pdf



Bản đồ sao được nhúng vào lịch
Các bạn thân mến! Blog TTL đã giới thiệu thuật toán tính Âm Lịch của Hồ Ngọc Đức bằng ngôn ngữ JavaScript, Đây là thuật toán Thiên văn của quốc tế. Bạn có thể xem bài viết này tại: 

Còn ở bài viết này tôi sẽ giới thiệu cho bạn thuật toán tính âm lịch của Hồ Ngọc Đức bằng ngôn ngữ Viasual Basic do Blog TTL chuyển từ ngôn JavaScript. Và File Excel Lịch Vạn Niên xây dựng từ thật toán trên và các tài liệu xem ngày tháng. Nhưng tôi sẽ giới thiệu về File Lịch Vạn Niên trước, thuật toán giới thiệu sau.
File Lịch Vạn Niên là một chương trình xử lý, tính toán một ngày dương nào đó thành ngày âm lịch và các vạn sự của ngày.

Ví dụ như ngày Dương là ngày 01 tháng 01 năm 2013, thì kết quả cơ bản từ chương trình Lịch Vạn Niên là:
  • Là ngày Hoàng Đạo
  • Ngày thứ 3
  • Ngày theo lịch Julius: 2456294
  • Ngày âm lịch: 20/11/2012 ngày Đinh Mão tháng Nhâm Tý năm Nhâm Thìn
  • Mệnh ngày là Hỏa (lửa trong lò), mệnh tháng là Mộc (gỗ cây dâu), mệnh năm là Thủy (nước giữa dòng)
  • Ngày này đang ở trong tiết Đông Chí (giữa đông - kinh độ mặt trời là 280.43 độ)
  • Từ 23h đến 01h là giờ Canh Tý thần Tư Mệnh quản, giờ này là giờ Hắc Đạo, còn từ 01h đến 03h ....
  • Ngày này thì hướng Hỷ thần là Chính Nam, Tài thần là Chính Tây, Hạc thần là Chính Nam, giờ không vong tại Dậu, Hợi, Giờ tốt: Dần, Mão, Ngọ, Mùi
  •  Các sao tốt chiếu trong ngày này: Nguyện Đức Hợp, Thiên Thành...
  • Các sao xấu chiếu trong ngày này: Thiên Cương, Thiên Lại...
  • Các phần vạn sự A, B,C,D,E,F ...
  • ............................

Ngoài ra còn có thêm 3 phần là: Xem Giờ Sinh, Bát Trạch, Ngày Đặc Biệt Của Bạn:
  • Phần Xem Giờ Sinh được viết theo sách Ngọc Hạp Chánh Tông. Phần này bạn chỉ nên xem cho vui, đừng tin quá.
  • Phần Bát Trạch được xây dựng dựa theo sách Phong Thủy Ứng Dụng. Phần này ứng dụng cho việc bài trí nội thất, ngoại thất.
  • Phần Ngày Đặc Biệt là phần bạn nhập ngày mà bạn cần nhớ của mình vào, Lịch vạn niên khi chỉ tới ngày đó sẽ báo cho bạn. Ví dụ ngày sinh của bạn là 20/10/1984 Âm Lịch thì đến ngày 20/10 âm lịch của các năm sẽ hiện dòng nhắc sinh nhật của bạn.
Tuy nhiên bản Lịch Vạn Niên này chắc chắn không ít thì nhiều có chổ sẽ sai, nếu ai phát hiện lỗi sai sót thì comment dùm nha. Ngoài ra mong bà con bàn luận chi sẽ, góp ý để hoàn thành Lịch Vạn Niên này tốt hơn.

Ghi chú Lịch Vạn Niên này là file Excel có chứa các Macro nên bạn phải đưa chế độ bảo vệ của Excel về mức Low mới xem được.  Phần Bát Trạch, nếu bạn dùng thì phải dùng Excel 2007 trở lên, excel 2003 sẽ bị lỗi. 


TẢI LỊCH VẠN NIÊN MỚI NHẤT


Riêng phần tính giờ nước lên, nước xuống thì mình chưa có thuật toán tính, nên mục này bà con xem thận trọng nha. Ai có thật toán tính giờ con nước thì chỉ mình với.

Các bạn có thể thảm khảo bài viết: Cách Tính Giờ Âm Lịch để hiểu hơn về chương trình này

Còn đây là thuật toán:


Option Explicit ' TRAN TU LIEM
Const PI As Double = 3.14159265358979 ' Atn(1) * 4

Function jdFromDate(ByVal dd As Long, ByVal mm As Long, ByVal yy As Long) As Long
    Dim a As Double, y As Long, M As Long, jd As Long
    a = Fix((14 - mm) / 12)
    y = yy + 4800 - a
    M = mm + 12 * a - 3
    jd = dd + Fix((153 * M + 2) / 5) + 365 * y _
        + Fix(y / 4) - Fix(y / 100) + Fix(y / 400) - 32045
    If jd < 2299161 Then
        jd = dd + Fix((153 * M + 2) / 5) + 365 * y + Fix(y / 4) - 32083
    End If
    jdFromDate = jd
End Function

Function jdToDate(jd)
' doi ngay july thành ngay thuong
Dim a, b, c, d, e, M, Day, Month, Year
If jd > 2299160 Then
    a = jd + 32044
    b = Int((4 * a + 3) / 146097)
    c = a - Int((b * 146097) / 4)
 Else
    b = 0
    c = jd + 32082
End If
d = Int((4 * c + 3) / 1461)
e = c - Int((1461 * d) / 4)
M = Int((5 * e + 2) / 153)
Day = e - Int((153 * M + 2) / 5) + 1
Month = M + 3 - 12 * Int(M / 10)
Year = b * 100 + d - 4800 + Int(M / 10)
jdToDate = DateSerial(Year, Month, Day)

End Function

Function NewMoon(ByVal k As Long) As Double
    Dim T As Double, T2 As Double, T3 As Double, dr As Double
    Dim Jd1 As Double, M As Double, Mpr As Double
    Dim F As Double, C1 As Double, deltat As Double, JdNew As Double
    T = k / 1236.85 ' Time in Julian centuries from 1900 January 0.5
   T2 = T * T
    T3 = T2 * T
    dr = PI / 180
    Jd1 = 2415020.75933 + 29.53058868 * k + 0.0001178 * T2 - 0.000000155 * T3
    Jd1 = Jd1 + 0.00033 * Sin((166.56 + 132.87 * T - 0.009173 * T2) * dr)
    M = 359.2242 + 29.10535608 * k - 0.0000333 * T2 - 0.00000347 * T3
    Mpr = 306.0253 + 385.81691806 * k + 0.0107306 * T2 + 0.00001236 * T3
    F = 21.2964 + 390.67050646 * k - 0.0016528 * T2 - 0.00000239 * T3
    C1 = (0.1734 - 0.000393 * T) * Sin(M * dr) + 0.0021 * Sin(2 * dr * M)
    C1 = C1 - 0.4068 * Sin(Mpr * dr) + 0.0161 * Sin(dr * 2 * Mpr)
    C1 = C1 - 0.0004 * Sin(dr * 3 * Mpr)
    C1 = C1 + 0.0104 * Sin(dr * 2 * F) - 0.0051 * Sin(dr * (M + Mpr))
    C1 = C1 - 0.0074 * Sin(dr * (M - Mpr)) + 0.0004 * Sin(dr * (2 * F + M))
    C1 = C1 - 0.0004 * Sin(dr * (2 * F - M)) - 0.0006 * Sin(dr * (2 * F + Mpr))
    C1 = C1 + 0.001 * Sin(dr * (2 * F - Mpr)) + 0.0005 * Sin(dr * (2 * Mpr + M))
    If (T < -11) Then
        deltat = 0.001 + 0.000839 * T + 0.0002261 * T2 _
                - 0.00000845 * T3 - 0.000000081 * T * T3
    Else
        deltat = -0.000278 + 0.000265 * T + 0.000262 * T2
    End If
    JdNew = Jd1 + C1 - deltat
    NewMoon = JdNew
End Function

Function SunLongitude(ByVal jdn As Double) As Double
    Dim T As Double, T2 As Double, dr As Double, M As Double
    Dim L0 As Double, DL As Double, L As Double
    T = (jdn - 2451545) / 36525
        ' Time in Julian centuries from 2000-01-01 12:00:00 GMT
   T2 = T * T
    dr = PI / 180 ' degree to radian
   M = 357.5291 + 35999.0503 * T - 0.0001559 * T2 - 0.00000048 * T * T2
    L0 = 280.46645 + 36000.76983 * T + 0.0003032 * T2
    DL = (1.9146 - 0.004817 * T - 0.000014 * T2) * Sin(dr * M)
    DL = DL + (0.019993 - 0.000101 * T) * Sin(dr * 2 * M) _
        + 0.00029 * Sin(dr * 3 * M)
    L = L0 + DL ' true longitude, degree
   L = L * dr
    L = L - PI * 2 * (Fix(L / (PI * 2))) ' Normalize to (0, 2*PI)
   SunLongitude = L
End Function

Function getSunLongitude(ByVal dayNumber As Double, ByVal timeZone As Byte) As Long
    getSunLongitude = Fix(SunLongitude(dayNumber - 0.5 - timeZone / 24) / PI * 6)
End Function

Function getNewMoonDay(ByVal k As Long, ByVal timeZone As Long) As Long
    getNewMoonDay = Fix(NewMoon(k) + 0.5 + timeZone / 24)
End Function

Function getLunarMonth11(ByVal yy As Long, ByVal timeZone As Long) As Long
    Dim k As Long, off As Double, nm As Long, sunLong As Double
    off = jdFromDate(31, 12, yy) - 2415021
    k = Fix(off / 29.530588853)
    nm = getNewMoonDay(k, timeZone)
    sunLong = getSunLongitude(nm, timeZone) ' sun longitude at local midnight
   If (sunLong >= 9) Then
        nm = getNewMoonDay(k - 1, timeZone)
    End If
    getLunarMonth11 = nm
End Function


Function getLeapMonthOffset(ByVal a11 As Double, ByVal timeZone As Long) As Long
    Dim k As Long, last As Long, Arc As Long, I As Long
    k = Fix((a11 - 2415021.07699869) / 29.530588853 + 0.5)
    last = 0
    I = 1 ' We start with the month following lunar month 11
   Arc = getSunLongitude(getNewMoonDay(k + I, timeZone), timeZone)
    Do
        last = Arc
        I = I + 1
        Arc = getSunLongitude(getNewMoonDay(k + I, timeZone), timeZone)
    Loop While (Arc <> last And I < 14)
    getLeapMonthOffset = I - 1
End Function


Public Function KinhDoMatTroi(gio, phut, dd, mm, yy)
'tinh kinh ?o mat troi
Dim PI, a, y, M, T, jdn, L0, jd, c, theta, lambda
PI = 4 * Atn(1)
a = Int((14 - mm) / 12)
y = yy + 4800 - a
M = mm + 12 * a - 3
    jdn = dd + Int(((153 * M) + 2) / 5) + 365 * y + Int(y / 4) - Int(y / 100) + Int(y / 400) - 32045
    If jdn < 2299161 Then jdn = dd + Int((153 * M + 2) / 5) + 365 * y + Int(y / 4) - 32083
    jd = jdn + ((gio - 12) / 24) + (phut / 1440) - 7 / 24


T = (jd - 2451545#) / 36525
L0 = 280.46645 + 36000.76983 * T + 0.0003032 * T * T
M = (357.5291 + 35999.0503 * T - 0.0001559 * T * T - 0.00000048 * T * T * T) * PI / 180
c = ((1.9146 - 0.004817 * T - 0.000014 * T * T) * Sin(M)) + (0.01993 - 0.000101 * T) * Sin(2 * M) + 0.00029 * Sin(3 * M)
theta = L0 + c
lambda = theta - 0.00569 - 0.00478 * Sin((125.04 - 1934.136 * T) * PI / 180)
lambda = lambda - 360 * Int(lambda / 360)
KinhDoMatTroi = lambda

End Function













Function convertSolar2Lunar(dd, mm, yy, timeZone)

'Doi ngày duong dd/mm/yyyy ra ngày âm

Dim k, dayNumber, monthStart, a11, b11, lunarDay, lunarMonth, lunarYear, lunarLeap, diff, leapMonthDiff
dayNumber = jdFromDate(dd, mm, yy)
k = Int((dayNumber - 2415021.07699869) / 29.530588853)
monthStart = getNewMoonDay(k + 1, timeZone)
If monthStart > dayNumber Then monthStart = getNewMoonDay(k, timeZone)
a11 = getLunarMonth11(yy, timeZone)
b11 = a11

If a11 >= monthStart Then
    lunarYear = yy
    a11 = getLunarMonth11(yy - 1, timeZone)
 Else
    lunarYear = yy + 1
    b11 = getLunarMonth11(yy + 1, timeZone)
End If
lunarDay = dayNumber - monthStart + 1
diff = Int((monthStart - a11) / 29)
lunarLeap = 0
lunarMonth = diff + 11
If (b11 - a11) > 365 Then
    leapMonthDiff = getLeapMonthOffset(a11, timeZone)
    If diff >= leapMonthDiff Then
        lunarMonth = diff + 10
        If diff = leapMonthDiff Then lunarLeap = 1
    End If
End If
If lunarMonth > 12 Then lunarMonth = lunarMonth - 12

If (lunarMonth >= 11 And diff < 4) Then lunarYear = lunarYear - 1
 
convertSolar2Lunar = lunarDay & "/" & lunarMonth & "/" & lunarYear

End Function

Function THANGNODU(dd, mm, yy, timeZone)

'THANG NO DU

Dim k, dayNumber, monthStart, a11, b11, lunarDay, lunarMonth, lunarYear, lunarLeap, diff, leapMonthDiff
dayNumber = jdFromDate(dd, mm, yy)
k = Int((dayNumber - 2415021.07699869) / 29.530588853)
monthStart = getNewMoonDay(k + 1, timeZone)
If monthStart > dayNumber Then monthStart = getNewMoonDay(k, timeZone)
a11 = getLunarMonth11(yy, timeZone)
b11 = a11

If a11 >= monthStart Then
    lunarYear = yy
    a11 = getLunarMonth11(yy - 1, timeZone)
 Else
    lunarYear = yy + 1
    b11 = getLunarMonth11(yy + 1, timeZone)
End If
lunarDay = dayNumber - monthStart + 1
diff = Int((monthStart - a11) / 29)
lunarLeap = 0
lunarMonth = diff + 11
If (b11 - a11) > 365 Then
    leapMonthDiff = getLeapMonthOffset(a11, timeZone)
    If diff >= leapMonthDiff Then
        lunarMonth = diff + 10
        If diff = leapMonthDiff Then lunarLeap = 1
    End If
End If
If lunarMonth > 12 Then lunarMonth = lunarMonth - 12

If (lunarMonth >= 11 And diff < 4) Then lunarYear = lunarYear - 1
 
THANGNODU = getNewMoonDay(k + 1, timeZone) - getNewMoonDay(k, timeZone)

End Function

Function THANGNHUAN(dd, mm, yy, timeZone)

'THANG NHUAN

Dim k, dayNumber, monthStart, a11, b11, lunarDay, lunarMonth, lunarYear, lunarLeap, diff, leapMonthDiff
dayNumber = jdFromDate(dd, mm, yy)
k = Int((dayNumber - 2415021.07699869) / 29.530588853)
monthStart = getNewMoonDay(k + 1, timeZone)
If monthStart > dayNumber Then monthStart = getNewMoonDay(k, timeZone)
a11 = getLunarMonth11(yy, timeZone)
b11 = a11

If a11 >= monthStart Then
    lunarYear = yy
    a11 = getLunarMonth11(yy - 1, timeZone)
 Else
    lunarYear = yy + 1
    b11 = getLunarMonth11(yy + 1, timeZone)
End If
lunarDay = dayNumber - monthStart + 1
diff = Int((monthStart - a11) / 29)
lunarLeap = 0
lunarMonth = diff + 11
If (b11 - a11) > 365 Then
    leapMonthDiff = getLeapMonthOffset(a11, timeZone)

    THANGNHUAN = (leapMonthDiff + 10) Mod 12
End If

 


End Function






Function convertLunar2Solar(lunarDay, lunarMonth, lunarYear, lunarLeap, timeZone)

'Doi âm lich ra duong lich

Dim k, a11, b11, off, leapOff, leapMonth, monthStart
If (lunarMonth < 11) Then
    a11 = getLunarMonth11(lunarYear - 1, timeZone)
    b11 = getLunarMonth11(lunarYear, timeZone)
 Else
    a11 = getLunarMonth11(lunarYear, timeZone)
    b11 = getLunarMonth11(lunarYear + 1, timeZone)
End If
off = lunarMonth - 11
If (off < 0) Then off = off + 12

If (b11 - a11 > 365) Then
    leapOff = getLeapMonthOffset(a11, timeZone)
    leapMonth = leapOff - 2
    If (leapMonth < 0) Then leapMonth = leapMonth + 12
 
    If (lunarLeap <> 0 And lunarMonth <> leapMonth) Then
        convertLunar2Solar = Array(0, 0, 0)
    Else
        If (lunarLeap <> 0 Or off >= leapOff) Then off = off + 1
    End If
End If
k = Int(0.5 + (a11 - 2415021.07699869) / 29.530588853)
monthStart = getNewMoonDay(k + off, timeZone)
convertLunar2Solar = jdToDate(monthStart + lunarDay - 1)

End Function


Function Ngay(dd, mm, yy, timeZone)

'Doi ngày duong dd/mm/yyyy ra ngày âm: Ngay

Dim k, dayNumber, monthStart, a11, b11, lunarDay, lunarMonth, lunarYear, lunarLeap, diff, leapMonthDiff
dayNumber = jdFromDate(dd, mm, yy)
k = Int((dayNumber - 2415021.07699869) / 29.530588853)
monthStart = getNewMoonDay(k + 1, timeZone)
If monthStart > dayNumber Then monthStart = getNewMoonDay(k, timeZone)
a11 = getLunarMonth11(yy, timeZone)
b11 = a11

If a11 >= monthStart Then
    lunarYear = yy
    a11 = getLunarMonth11(yy - 1, timeZone)
 Else
    lunarYear = yy + 1
    b11 = getLunarMonth11(yy + 1, timeZone)
End If
lunarDay = dayNumber - monthStart + 1
diff = Int((monthStart - a11) / 29)
lunarLeap = 0
lunarMonth = diff + 11
If (b11 - a11) > 365 Then
    leapMonthDiff = getLeapMonthOffset(a11, timeZone)
    If diff >= leapMonthDiff Then
        lunarMonth = diff + 10
        If diff = leapMonthDiff Then lunarLeap = 1
    End If
End If
If lunarMonth > 12 Then lunarMonth = lunarMonth - 12

If (lunarMonth >= 11 And diff < 4) Then lunarYear = lunarYear - 1
 
Ngay = lunarDay
End Function
Function Thang(dd, mm, yy, timeZone)

'Doi ngày duong dd/mm/yyyy ra ngày âm: Thang

Dim k, dayNumber, monthStart, a11, b11, lunarDay, lunarMonth, lunarYear, lunarLeap, diff, leapMonthDiff
dayNumber = jdFromDate(dd, mm, yy)
k = Int((dayNumber - 2415021.07699869) / 29.530588853)
monthStart = getNewMoonDay(k + 1, timeZone)
If monthStart > dayNumber Then monthStart = getNewMoonDay(k, timeZone)
a11 = getLunarMonth11(yy, timeZone)
b11 = a11

If a11 >= monthStart Then
    lunarYear = yy
    a11 = getLunarMonth11(yy - 1, timeZone)
 Else
    lunarYear = yy + 1
    b11 = getLunarMonth11(yy + 1, timeZone)
End If
lunarDay = dayNumber - monthStart + 1
diff = Int((monthStart - a11) / 29)
lunarLeap = 0
lunarMonth = diff + 11
If (b11 - a11) > 365 Then
    leapMonthDiff = getLeapMonthOffset(a11, timeZone)
    If diff >= leapMonthDiff Then
        lunarMonth = diff + 10
        If diff = leapMonthDiff Then lunarLeap = 1
    End If
End If
If lunarMonth > 12 Then lunarMonth = lunarMonth - 12

If (lunarMonth >= 11 And diff < 4) Then lunarYear = lunarYear - 1
 
Thang = lunarMonth

End Function

Function Nam(dd, mm, yy, timeZone)

'Doi ngày duong dd/mm/yyyy ra ngày âm

Dim k, dayNumber, monthStart, a11, b11, lunarDay, lunarMonth, lunarYear, lunarLeap, diff, leapMonthDiff
dayNumber = jdFromDate(dd, mm, yy)
k = Int((dayNumber - 2415021.07699869) / 29.530588853)
monthStart = getNewMoonDay(k + 1, timeZone)
If monthStart > dayNumber Then monthStart = getNewMoonDay(k, timeZone)
a11 = getLunarMonth11(yy, timeZone)
b11 = a11

If a11 >= monthStart Then
    lunarYear = yy
    a11 = getLunarMonth11(yy - 1, timeZone)
 Else
    lunarYear = yy + 1
    b11 = getLunarMonth11(yy + 1, timeZone)
End If
lunarDay = dayNumber - monthStart + 1
diff = Int((monthStart - a11) / 29)
lunarLeap = 0
lunarMonth = diff + 11
If (b11 - a11) > 365 Then
    leapMonthDiff = getLeapMonthOffset(a11, timeZone)
    If diff >= leapMonthDiff Then
        lunarMonth = diff + 10
        If diff = leapMonthDiff Then lunarLeap = 1
    End If
End If
If lunarMonth > 12 Then lunarMonth = lunarMonth - 12

If (lunarMonth >= 11 And diff < 4) Then lunarYear = lunarYear - 1
 
Nam = lunarYear

End Function

Function Duongcongkynhat(dd, mm, yy, timeZone)

'Doi ngày duong dd/mm/yyyy ra ngày âm

Dim k, dayNumber, monthStart, a11, b11, lunarDay, lunarMonth, lunarYear, lunarLeap, NgayAm, diff, leapMonthDiff
dayNumber = jdFromDate(dd, mm, yy)
k = Int((dayNumber - 2415021.07699869) / 29.530588853)
monthStart = getNewMoonDay(k + 1, timeZone)
If monthStart >= dayNumber Then monthStart = getNewMoonDay(k, timeZone)
a11 = getLunarMonth11(yy, timeZone)
b11 = a11

If a11 >= monthStart Then
    lunarYear = yy
    a11 = getLunarMonth11(yy - 1, timeZone)
 Else
    lunarYear = yy + 1
    b11 = getLunarMonth11(yy + 1, timeZone)
End If
lunarDay = dayNumber - monthStart + 1
diff = Int((monthStart - a11) / 29)
lunarLeap = 0
lunarMonth = diff + 11
If (b11 - a11) > 365 Then
    leapMonthDiff = getLeapMonthOffset(a11, timeZone)
    If diff >= leapMonthDiff Then
        lunarMonth = diff + 10
        If diff = leapMonthDiff Then lunarLeap = 1
    End If
End If
If lunarMonth > 12 Then lunarMonth = lunarMonth - 12

If (lunarMonth >= 11 And diff < 4) Then lunarYear = lunarYear - 1
 
NgayAm = lunarDay & "/" & lunarMonth
Duongcongkynhat = ""

If NgayAm = "13/1" Or NgayAm = "11/2" Or NgayAm = "9/3" Or NgayAm = "7/4" Or NgayAm = "5/5" Or NgayAm = "3/6" Or NgayAm = "8/7" Or NgayAm = "29/7" Or NgayAm = "27/8" Or NgayAm = "25/9" Or NgayAm = "23/10" Or NgayAm = "21/11" Or NgayAm = "19/12" Then Duongcongkynhat = 1

End Function

Function TamNuongSat(dd, mm, yy, timeZone)

'Kiem tra ngay dd/mm/yyyy có phai ngay Tam Nuong Sat

Dim k, dayNumber, monthStart, a11, b11, lunarDay, lunarMonth, lunarYear, lunarLeap, TamNuong, diff, leapMonthDiff
dayNumber = jdFromDate(dd, mm, yy)
k = Int((dayNumber - 2415021.07699869) / 29.530588853)
monthStart = getNewMoonDay(k + 1, timeZone)
If monthStart >= dayNumber Then monthStart = getNewMoonDay(k, timeZone)
a11 = getLunarMonth11(yy, timeZone)
b11 = a11

If a11 >= monthStart Then
    lunarYear = yy
    a11 = getLunarMonth11(yy - 1, timeZone)
 Else
    lunarYear = yy + 1
    b11 = getLunarMonth11(yy + 1, timeZone)
End If
lunarDay = dayNumber - monthStart + 1
diff = Int((monthStart - a11) / 29)
lunarLeap = 0
lunarMonth = diff + 11
If (b11 - a11) > 365 Then
    leapMonthDiff = getLeapMonthOffset(a11, timeZone)
    If diff >= leapMonthDiff Then
        lunarMonth = diff + 10
        If diff = leapMonthDiff Then lunarLeap = 1
    End If
End If
If lunarMonth > 12 Then lunarMonth = lunarMonth - 12

If (lunarMonth >= 11 And diff < 4) Then lunarYear = lunarYear - 1
 

TamNuongSat = ""

If lunarDay = 2 Or lunarDay = 7 Or lunarDay = 13 Or lunarDay = 18 Or lunarDay = 22 Or lunarDay = 27 Then TamNuongSat = 1

End Function

Function NgayNguyetKy(dd, mm, yy, timeZone)

'Kiem tra ngay dd/mm/yyyy có phai ngay Nguyet Ky

Dim k, dayNumber, monthStart, a11, b11, lunarDay, lunarMonth, lunarYear, lunarLeap, TamNuong, diff, leapMonthDiff
dayNumber = jdFromDate(dd, mm, yy)
k = Int((dayNumber - 2415021.07699869) / 29.530588853)
monthStart = getNewMoonDay(k + 1, timeZone)
If monthStart >= dayNumber Then monthStart = getNewMoonDay(k, timeZone)
a11 = getLunarMonth11(yy, timeZone)
b11 = a11

If a11 >= monthStart Then
    lunarYear = yy
    a11 = getLunarMonth11(yy - 1, timeZone)
 Else
    lunarYear = yy + 1
    b11 = getLunarMonth11(yy + 1, timeZone)
End If
lunarDay = dayNumber - monthStart + 1
diff = Int((monthStart - a11) / 29)
lunarLeap = 0
lunarMonth = diff + 11
If (b11 - a11) > 365 Then
    leapMonthDiff = getLeapMonthOffset(a11, timeZone)
    If diff >= leapMonthDiff Then
        lunarMonth = diff + 10
        If diff = leapMonthDiff Then lunarLeap = 1
    End If
End If
If lunarMonth > 12 Then lunarMonth = lunarMonth - 12

If (lunarMonth >= 11 And diff < 4) Then lunarYear = lunarYear - 1
 

NgayNguyetKy = ""

If lunarDay = 5 Or lunarDay = 14 Or lunarDay = 23 Then NgayNguyetKy = 1

End Function
NIÊN | LỊCH VẠN NIÊN | LICH VẠN NIÊN 2013
Xem tiếp…

LỊCH VẠN SỰ 2016

16:59 |

TẢI LỊCH VẠN SỰ 2016


TTL Blog chia sẽ các bộ lịch giúp bạn tra khảo ngày tháng của năm 2016.

  • Lịch vạn niên excel 2016 và các năm khác: DOWNLOAD
 



  • Lịch theo tháng 2016 file PDF: DOWNLOAD
  • Lịch vạn sự 2016 SCAN: chưa có
Xem thêm:
Lịch vạn sự 2017
Tử vi 2016
Lịch vạn niên excel



































Từ khóa: Lịch vạn sự 2016, lịch vạn sự 2016 scan, lịch vạn sự 2016 pdf, sách lịch vạn sự 2016
Xem tiếp…

HÀNH TRÌNH VỀ PHƯƠNG ĐÔNG

00:04 |
Hôm trước được gặp một bậc thầy ở lĩnh vực lĩnh vực Phong Thủy Tâm Linh và củng là một nhà khoa học được phong tặng học hàm, đã từng là hiệu trưởng của một trường Đại học danh tiếng. Trong buổi nói chuyện Bác đã hỏi mình "Liêm đã đọc cuốn Hành Trình Về Phương Đông chưa?".

Mình trả lời thật "Cháu đã nghe tên nhưng chưa đọc bao giờ".

Thế là Bác ấy giới thiệu về cuốn sách, mình nghe là ngiền luôn rồi. Bác giới thiệu về nội dung và tác giả, dịch giả của cuốn sách, nhưng phần gây ấn tượng nhất đó là Dịch Giả. Dịch Giả đó là Nguyên Phong, người ấy đên nay không biết đó là ai, mà dịch hay như vậy. Người đời đang đi tìm mà chưa tìm được và cuốn sách lại được dịch ngược lại từ tiếng Việt thành tiếng Anh.

Xin nói thêm là cuốn sách này xuất bản năm 1924 nhé bạn, lúc đó Việt Nam thế nào?

Lời nhận xét về cuốn sách Hành trình về phương đông


Đây là một cuốn sách cực hay ở đầy đủ các góc độ:


  • Chuyên sâu: về triết học về mọi khoa học hiện đại (toán học, vật lý, sinh, hóa ..., thiên văn), được kể chuyện bởi vị giáo sư.



  • Về khoa học phương đông và tâm linh, đặt tôn giáo trên góc độ khách quan, những người như Giê su, hay Phật Tổ, Khổng tử đều xem là những ngài "Giáo chủ".



  • Về mặt ngôn từ: ngôn từ đúng với ngôn từ của những nhà nho học trước đây, cô đọng và mạnh mẽ



  • Về nội dung: Thấy hay, và còn phải nghiên cứu, và vén màn cho một nền minh triết đang ẩn nấp do tư duy cổ hủ của chính bản thân.

Hành trình về phương đông xát muối những người làm nghề Sư


Những ai gọi là "làm nghê sư" thì nghe video này khác gì bị xát muối!
Nhưng những ai đúng gọi là "tu" thì là cả một chân trời!

Blog TTL xin mạn phép bày tỏ trên quan điểm cá nhân, xúc phạm xin thứ lỗi!


HÀNH TRÌNH VỀ PHƯƠNG ĐÔNG

Nếu bạn muốn tìm hiểu ban đầu về cuốn sách này, vui lòng nghe lời giới thiệu từ Video này:

Xem tiếp…

Sách Ngọc Hạp Toản Yếu Thông Dụng

13:34 |
Sách Ngọc Hạp Toản Yếu Thông Dụng
Tên sách
玉匣攢要通用
Ngọc hạp toản yếu thông dụng
Nơi xuất bản
Phúc Văn Đường tàng bản
Năm xuất bản
保大元年
Bảo Đại nguyên niên
1926
Số trang
73
Kiểu tài liệu
Khắc in
Tóm tắt
“Cách xem tuổi, xem ngày, xem vận niên, xem sao, xem ngũ hành, bói thẻ…để đoán biết việc tốt, xấu, sống lâu hay chết yểu, ngày nào nên đi buôn, ngày nào nên xuất quân, ngày nào nên cưới xin…”
Nguồn: Viện nghiên cứu Hán Nôm, Học viện Viễn Đông Bác Cổ Pháp. Di sản Hán Nôm Việt Nam thư mục đề yếu tập 3. Hà Nội: Nhà xuất bản Khoa học xã hội, 1993: trang 835.

1

Xem tiếp…

VĂN CÚNG TẾT NGUYÊN ĐÁN

11:11 |
Tổng hợp các bài văn cúng Tết Nguyên Đán, Văn Khấn Tết

I/ Văn khấn Táo Quân 23 tháng Chạp
Chuẩn bị:
  1. Hương, hoa hồng 5 bông.
  2. Quả vật : mua theo số lẻ
  3. Tiền vàng 15 lễ
  4. Một quả cau ba lá trầu
  5. Bộ mũ áo, hia hài và cá chép mã của ba vị Táo quân
  6. Sớ cúng Táo quân.
  7. Xôi gấc 1 đĩa - Một miếng giò.
  8. Một chai rượu trắng
  9. Một bao thuốc lá.
  10. Một cốc nước lã sạch.
  11. Một gói kẹo mè xửng, hoặc một gói kẹo dừa.
Văn khấn Táo Quân 23 tháng chạp
Nam mô A Di Đà Phật
Con lạy chín phương trời, mười phương Phật
Kính lạy Ngài Đông Trù Tư Mệnh Táo Phủ Thần Quân
Tín chủ là: ………………….. ;………tuổi cùng toàn gia
Cư trú tại số nhà: …phố …………….phường…………quận…….. Hà nội.
Hôm nay, nhân ngày 23 tháng Chạp năm Giáp Ngọ 2014. Tín chủ thành tâm sửa biện hương hoa vật phẩm xiêm hài áo mũ, nghi lễ cung trần dâng lên hương án, hiến cống Tôn thần, đốt nén tâm hương dốc lòng khánh bái. 
Cung thỉnh: Đông Trù Tư Mệnh Táo Phủ Thần Quân giáng lâm trước án (ban thờ) thụ hưởng lễ vật. Theo lệ xưa nay, Ngài là vị chủ Ngũ Tự Gia Thần, soi xét lòng trần, Táo quân chứng giám. Nay đã tới ngày Ngài thượng lộ Thiên đình cung báo việc trần. Chúng con tâm thành kính lễ xin Ngài mở lòng độ lượng  gia ân che chở, đại xá và châm chước cho lỗi lầm năm qua. Ban lộc ban phước, phù hộ toàn cho tín chủ và toàn gia đình chúng con được dồi dào sức khỏe, tinh thần dong sảng, gặp nhiều may mắn, gia đình yên vui thuận hòa, trong ấm ngoài êm. Mọi công việc làm ăn, giao dịch làm ăn được hanh thông thuận toại, ngày càng phát đạt, thúc đẩy tài vận nảy nở nhiều hoa thơm quả ngọt. Cúi xin Táo thần ra tay khứ tai trừ ách cho thân tâm và gia trung đều chúng con khang thái, bản mệnh an ninh khang thái, vạn sự như ý
Chúng con xin bày tỏ tấm lòng thành, cúi xin Ngài lai lâm chứng giám./.
                                                                                                 Cẩn cáo
(Khi còn ¾ tuần hương thì lễ tạ và hóa vàng, cho vào giọt rượu vào tiền vàng).

II/ Lễ cúng Tất niên chiều 30 Tết
      Lễ cúng này để đón Bản địa Tôn thần Táo quân từ Thiên đình về ăn Tết với nhân gian, gia đình.
Chuẩn bị:
  1. Hương, hoa hồng 5 bông.
  2. Nước lã sạch : 1 cốc
  3. Tiền vàng 15 lễ
  4. Một quả cau ba lá trầu
  5. Sớ cúng Thổ địa và Táo quân Tất niên
  6. Xôi gấc 1 đĩa - Một miếng giò. (hoặc làm một mâm cơm cúng)
  7. Một chai rượu trắng.
  8. Quả vật tùy theo, mua quả theo số lẻ
  9. Bánh chưng một cái, bóc ra đĩa.
  10. Một khoanh giò đặt trên bánh chưng
  11. Một bao thuốc lá
  12. Bánh kẹo một đĩa nhỏ. 
Văn khấn tất niên vào chiều 30 Tết
Nam mô A Di Đà Phật (3 lần)
Kính lạy: Ngài Kim niên đương cai Thái Tuế Chí đức Tôn thần, Kim niên hành binh, Công Tào Phán Quan
Ngài Bản cảnh Thành hoàng Chư vị Đại Vương.
Ngài Bản xứ Thổ Địa Tôn Thần
Các ngài Ngũ Phương Ngũ Thổ Long Mạch Tôn Thần, Tiên Chu tước, Hậu Huyền Vũ Tả Thanh long, hữu Bạch Hổ cùng Liệt vị Tôn Thần cai quản xứ này.
Bản gia:
Thổ địa mạch long thần
Ngũ phương ngũ hổ long mạch
Tiền hậu địa chủ Tài thần
Đông trù Táo  phủ Thần quân
Liệt vị nội ngoại gia tiên, Tổ cô mãnh tướng
Hôm nay, ngày 30 tháng Chạp năm Giáp Ngọ 2014, nhằm tiết cuối Đông sắp sang năm mới.
Tín chủ con là: ………………cùng toàn gia
Cư trú tại số nhà: …phố …………….phường…………quận…….. Hà nội.
Hôm nay chúng con sắm sanh lễ vật hương hoa phù tửu lễ nghi trình cáo Bản gia Tôn thần, và chư vị Tiên linh, Tổ cô mãnh tướng để cho tín chủ chúng con phụng sự trong tiết xuân thiên, báo đáp ân thâm, tỏ lòng hiếu kính. Chí xin Tôn Thần phù thùy doãn hứa. Âm Dương cách trở, bát nước nén hương, biểu tấm lòng thành, cúi xin chứng giám.
                                                                                                      Cẩn cáo
(Khi còn ¾ tuần hương thì lễ tạ, hóa vàng. Rắc vài giọt rượu vào tro tiền vàng).

III/ Lễ cúng giao thừa (ngoài trời)
Chuẩn bị:
  1. Hương, hoa, nến ( đèn), tiền vàng: 15 lễ tiền vàng,
  2. Đồ cúng mặn : Gà lễ, xôi, rượu trắng : 1 chai
  3. Hoa, quả:  màu vàng và đỏ: 1 đĩa.
  4. Trầu cau: 1 quả cau, ba lá trầu.
  5. Nước lã sạch : 1 cốc
  6. Bánh chưng, một đĩa xôi
  7. Một khoanh giò lụa
  8. Bánh kẹo mứt, tùy theo gia cảnh.
  9. Bộ mũ áo quan Đương Niên hành khiển,
  10. Sớ cúng giao thừa
  11. Một ngọn đèn hoặc nến.
Văn khấn Tống Cựu Nghênh Tân xuân Giáp Ngọ 2014 (ngoài trời)
Nam mô A Di Đà Phật
Con lạy chín phương trời, mười phương Phật
Phúc Lộc Thọ Khang Ninh
Nãi nhân tâm chi kỳ nguyện
- Kính tấu: Ngọc Hoàng Thượng Đế.
- Kính tấu: Đương xứ bản thổ - Ngũ phương ngũ đế - Diêm la âm phủ - Thập điện minh vương.
- Kính tấu: Long vương hải hà tại trị - Linh Thành Hoàng Đế Quốc Vương  - Ngũ Lôi Thiên Vương - Ngũ  Hổ Thần Đại - âm phủ - Hà Bá - Thủy Quan nhậm trị hải hà.
- Kính tấu: Cựu vương hành khiển: Ngô Vương Hành khiển, thiên hao hành binh chi thần, hứa tào phán quan.
- Kính tấu: Tân niên hành khiển: Tần Vương Hành khiển, thiên mao hành binh chi thần, ngọc tào phán quan.
Kim thần tín chủ là: …………………..cùng toàn gia quyến đẳng.
Chí nguyện tâm thành kính dâng lễ vật: Nhang đăng, Thanh thủy, Kim ngân, Hoa trái, Quí tửu, ẩm thực, Nhục kê, thứ phẩm chi nghi thỉnh cúng.
Kính lạy Thiên Địa, đồng chư vị tôn thần chấp lễ, chấp cầu ban đức cao phúc lành cho
toàn gia chúng con được Khang Ninh Phúc Lộc Thọ.
Chứng giám cung duy sớ văn tấu cúng lễ giao thừa : Tiễn năm cũ, đón năm mới, chúng con tiến lễ khấn Trời Phật Thánh Thần cho toàn gia chúng con sang năm mới Giáp 2014, được hanh thông phát đạt, nhân lực, vật lực khang cường, nội ngoại  bình an, tài lộc tăng tiến, vạn sự như ý. Ban lộc ban phước, phù hộ toàn cho tín chủ và toàn gia đình chúng con được dồi dào sức khỏe, tinh thần dong sảng, gặp nhiều may mắn, gia đình yên vui thuận hòa, trong ấm ngoài êm. Mọi công việc làm ăn, giao dịch làm ăn được hanh thông thuận toại, ngày càng phát đạt, thúc đẩy tài vận nảy nở nhiều hoa thơm quả ngọt. Con cái ngoan khỏe mạnh, hay ăn chóng lớn, phụ lão hưởng thọ, an khang vô bệnh tật, khứ tai trừ ách cho toàn gia chúng con khang thái, bản mệnh an ninh khang thái, vạn sự như ý.
Lễ cúng tại trung thiên bản gia tại:
Tín chủ con là: …………………..; ……tuổi cùng toàn gia
Cư trú tại số nhà: …phố …………….phường…………quận…….. Hà nội.
Thiên vận
                 Xuân Thiên;  Giáp Ngọ niên ; Chính nguyệt ; Tý thời ./.
                                                                                        Cẩn cáo
(Khi còn ¾ tuần hương thì lễ tạ và hóa vàng, cho vào giọt rượu vào tiền vàng).

IV/ Cúng giao thừa ở trong nhà
Chuẩn bị:
  1. Mâm ngũ quả : 5 loại quả có màu xanh, đỏ, vàng, tím ( nho), trắng (lê). Hoa quả này để đến ngày hóa vàng mới bỏ xuống. Cho nên cần chọn loại có thể để lâu.
  2. Bánh chưng, một đĩa giò chả, hoặc thịt gà.
  3. Bánh kẹo mứt kẹo.
  4. Một bao thuốc lá, cắm vào tay ông Địa châm thuốc lúc thắp hương.
  5. Một chai rượu trắng.
  6. Tiền vàng: 5 lễ nhưng sau khi cúng thì không hóa,1 tờ tiền màu đỏ đặt lên để lấy may.
  7. Một quả cau, ba lá trầu.
Bài khấn cúng giao thừa trong nhà
Nam mô A Di Đà Phật!
Con lạy chín phương trời, lạy mười phương Phật
Kính lạy:
Đương lai hạ sinh Di Lặc Tôn Phật
Hoàng Thiên Hậu Thổ, chư vị Tôn thần
Ngũ Phương, Ngũ Thổ Long Mạch
Tiền Hậu Địa Chủ Tài Thần
Nay, phút giao thừa đầu năm Giáp Ngọ 2014.
Tín chủ là: …………………; ………tuổi cùng toàn gia
Cư trú tại số nhà: …phố …………….phường…………quận…….. Hà nội.
Kính cẩn tấu trình: Phút giao thừa vừa tới, nay theo vận luật, tống cựu nghênh tân, giờ Tý đầu Xuân, đón mừng Nguyên đán. Tín chủ con thành tâm biện sửa hương hoa vật phẩm, nghi lễ cung trần , dâng lên trước ban thờ cúng dâng Phật Thánh dâng hiến tôn thần, tiến cúng chư thần bản gia đốt nén tâm hương, dốc lòng bái thỉnh.
Chúng con xin cung thỉnh: Ngài Bản cảnh Thành hoàng chư vị Đại vương, Ngài Bản xứ Thổ địa, Phúc đức chính thần - Ngũ Phương Ngũ Thổ Long Mạch - Tiền Hậu Địa Chủ Tài Thần - Bản gia Đông trù Táo Phủ Thần Quân -  Thượng Trung Hạ đẳng Thần bản gia, bản thổ. Cúi xin giáng lầm trước án, thụ hưởng lễ vật. Con kính mời chư vị Tôn thần giáng về nhân tiết giao thừa giáng lâm trước an chiêm ngưỡng tân xuân thụ hưởng lễ vật.
Nguyện cho tín chủ: Minh niên khang thái, trú dạ cát tường. Thời thời được chữ bình an, cho toàn gia chúng con sang năm mới Giáp Ngọ, nam phụ lão ấu đều khỏe mạnh, vui may hạnh phúc. Công việc sự nghiệp ngày càng phát đạt hưng long, nhân khang vật thịnh, may mắn cát tường như ý, gia trung hòa thuận hài hòa, tài lộc như ý (sau đó khấn cho từng mục đích cụ thể hoặc những sở nguyện  tùy theo).
Tín chủ con xin cúi đầu trông mong chư vị chứng tâm lòng thành phù độ cho toàn gia chúng con kim niên khang thái, phúc lộc lâm môn
Tín chủ ……………con xin rập đầu khánh bái ./.
                                                                                  Cẩn cáo
(Khi còn ¾ tuần hương thì lễ tạ và hóa vàng, cho vào giọt rượu vào tiền vàng).

V/ Ngày mồng một Tết
Chuẩn bị:
  1. Hương, hoa, nến ( đèn), tiền vàng: 15 lễ tiền vàng,
  2. Đồ cúng mặn : Gà lễ, xôi, rượu trắng 1 chai.
  3. Hoa, quả:  màu vàng và đỏ: 1 đĩa.
  4. Trầu cau: 1 quả cau, ba lá trầu.
  5. Nước lã sạch: 1 cốc
  6. Bánh chưng, một đĩa xôi
  7. Một khoanh giò lụa
  8. Bánh kẹo mứt, tùy theo gia cảnh.
  9. Bộ mũ áo quan Đương Niên hành khiển,
  10. Sớ cúng mồng một Tết.
  11. Một ngọn đèn hoặc nến.
Bài khấn cúng mồng một Tết
Nam  mô A Di Đà Phật (3 lần)
Kính lạy:
Đức Đương lai hạ sinh Di Lặc Tôn Phật
Phật Trời, Hoàng Thiên, Hậu Thổ.
Chư vị Bản gia Thổ địa mạch Long Thần.
Các cụ Tổ khảo, Tổ tỷ, bá thúc huynh đệ, đường thượng Tiên linh và các hương hồn
nội tộc, ngoại tộc.

        Hôm nay là ngày mồng Một tháng Giêng Giáp Ngọ niên 2014; Nhân đầu xuân năm mới, giải trừ đông phong lạnh lẽo, hung nghiệt tiêu tan. Đón mừng Nguyên đán xuân thiên, mưa móc thấm nhuần, muôn vật đổi mới. Nơi nơi lễ tiết, chốn chốn tường trình.
Tín chủ con là: .........................................
Ngụ tại: ................................................................

      Nhân tiết Minh niên sắm sửa hương hoa, cơm canh, lễ vật bầy ra trước án, dâng cúng Thiên Địa Tôn thần : Ân cao đức lớn - Ngôi cao vạn trượng uy nghi, vị chính mười phương biến hiện. Lòng thành vừa khởi, Tôn đức cảm thông. Cúi xin giáng lâm trước án, chứng giám lòng thành, thụ hưởng lễ vật. Nguyện cho chúng con mọi người hoan hỷ vinh xương, con cháu cát tường khang kiện. Mong ơn Đương cảnh Thành hoàng, đội đức Tôn thần bản xứ. Hộ trì tín chủ, gia lộc gia ân, xá quá trừ tai. Đầu năm chí giữa, nửa năm chí cuối, sự nghiệp hanh thông, sở cầu như ý. Kim thiên theo tuế luật, âm dương vận hành tới tuần nguyên đán, đón mừng năm mới. Con cháu tưởng niệm ân đức tổ tiên như trời cao biển rộng, khôn đem tất cỏ báo ba xuân. Chúng con cùng toàn thể con cháu trong nhà sửa sang lễ vật, oản quả hương hoa kính dâng lên trước linh đài.
       Kính mời các cụ Cao Tằng Tổ khảo, Cao tằng Tổ tỷ, Bá thúc huynh đệ, Cô di tỷ muội, nam nữ tử tôn nội ngoại. Cúi xin thương xót con cháu, linh thiêng giáng về linh sàng, phù hộ độ trì con cháu năm mới an khang, mọi bề thuận lợi, sự nghiệp hanh thông. Bốn mùa không hạn ách nào xâm, tám tiết có điềm lành tiếp ứng. Tín chủ lại mời: các vị vong linh, tiền chủ, hậu chủ ở trong đất này cùng về hâm hưởng.

        Dãi tấm lòng thành cúi xin chứng giám./.
(Khi còn ¾ tuần hương thì lễ tạ và hóa vàng, cho vào giọt rượu vào tiền vàng).
                                                                                                  Cẩn cáo

VI/ Lễ tạ ngày Tết (Hóa Vàng)
      
Chuẩn bị:
  1. Hương, hoa, nến ( đèn), tiền vàng: 5 lễ
  2. Đồ cúng mặn: làm một mâm cơm cúng.
  3. Rượu: 1 chai.
  4. Hoa, quả:  màu vàng và đỏ: 1 đĩa.
  5. Trầu cau: 1 quả cau, ba lá trầu.
  6. Nước lã sạch: 1 cốc
  7. Bánh kẹo tùy theo gia cảnh.
  8. Sớ cúng hóa vàng.
  9. Một bao thuốc lá.
  10. Một ngọn đèn hoặc nến.
Văn khấn hóa vàng
Nam mô A Di Đà Phật
Con lạy chín phương trời mười phương Phật
Kính lạy:
Hoàng Thiên Hậu Thổ Chư vị Tôn Thần
Ngài Đương niên hành khiển, Ngài Bản cảnh thành hoàng
Các ngài Táo Quân, Thổ địa, Long mạch, Tôn thần
Liệt vị nội ngoại gia tiên, tổ cô mãnh tướng
Hôm nay là ngày: mồng ….tháng giêng năm Giáp Ngọ 2014.
Tín chủ là: ………………….. ;………tuổi cùng toàn gia
Cư trú tại số nhà:..…phố …………….phường…………quận…….. Hà nội.
Hôm nay, chúng con thành tâm sửa biện hương hoa phẩm vật phù tửu lễ nghi, cung trần trước án.
Kính cẩn tấu trình: Tiệc xuân đã mãn, Nguyên đán đã qua, nay xin thiêu hóa Kim ngân, lễ tạ Tôn thần, rước Tiên linh về Âm giới.
Kính xin liệt vị gia tiên lưu phúc phù ân, phù hộ độ trì, dương cơ âm trạch, mọi chỗ tốt lành. Nhân thân được chữ bình an, gia trung nghênh đón cát tường hưng thịnh. Chúng con xin có lòng thành kính cẩn, lễ bạc tiến dâng, cúi xin chư vị Tiên linh, Tôn thần bản gia lượng cả soi xét, cúi xin chứng giám. Cầu xin Tiên linh và Tôn thần bản giả ban lộc ban phước, phù hộ toàn cho tín chủ và toàn gia đình chúng con được dồi dào sức khỏe, tinh thần dong sảng, gặp nhiều may mắn, trên dưới yên vui thuận hòa, trong ấm ngoài êm. Mọi công việc làm ăn, giao dịch làm ăn được hanh thông thuận toại, ngày càng phát đạt, bốn mùa tám tiết nảy nở thêm hoa thơm quả ngọt, khứ tai trừ ách cho thân tâm và gia trung chúng con khang thái, bản mệnh an ninh khang thái, vạn sự như ý.
         Tín chủ:................rập đầu kính bái!
                                                                                                 Cẩn cáo
(Khi còn ¾ tuần hương thì lễ tạ và hóa vàng, cho vào giọt rượu vào tiền vàng).      

VII/ Rằm tháng giêng
Chuẩn bị:
  1. Hương, hoa hồng 5 bông.
  2. Quả: mua theo số lẻ.
  3. Nước lã sạch: 1 cốc.
  4. Tiền vàng 5 lễ.
  5. Một quả cau 3 lá trầu.
  6. Sớ cúng rằm tháng giêng.
  7. Gà lễ và một đĩa xôi gấc.
  8. Một chai rượu trắng.
  9. Một bao thuốc lá.
  10. Quả vật tùy theo, mua quả theo số lẻ.
  11. Một bao thuốc lá.
  12. Bánh kẹo một đĩa nhỏ.(Châm thuốc lá, thắp hương, rót rượu)
Văn khấn rằm tháng giêng
Nam mô A Di Đà Phật!
Con lạy chín phương trời, mười phương Phật.
Hôm nay, là ngày rằm tháng giêng năm Giáp Ngọ 2014
Tín chủ là : ………………; ……tuổi cùng toàn gia
Cư trú tại số nhà: …phố …………….phường…………quận…….. Hà nội.
Hôm nay, là ngày nguyên tiêu rằm tháng giêng, chúng con theo lệ cũ, tâm thành tiến lễ vật, hoa quả hương đăng, phù lưu thanh trước, quí tửu nhục kê, cập vật phẩm chi nghi kính bày lễ.
Con xin cung thỉnh:
Đức Đông trù Tư mệnh Táo Phủ thần quân bản gia,
Ngũ phương ngũ thổ long mạch,
Tiền hậu địa chủ Tài thần bản gia
Bản gia liệt vị nội ngoại gia tiên
Bản gia Tổ cô mãnh tướng
       Kính mời chư vị tôn thần về lai lâm linh vị đài hâm hưởng lễ vật và chứng tâm lòng thành. Phù độ gia trì cho gia đình chúng con trong năm Quý Tỵ 2013, được hanh thông thuận lợi, Ban lộc ban phước, cho chúng con sức khỏe dồi dào, tinh thần dong sảng, gặp nhiều may mắn, gia đình yên vui thuận hòa, trong ấm ngoài êm. Con cái ngoan ngoãn học hành tiến tới, lão phụ an khang thọ chung mệnh. Mọi công việc giao dịch làm ăn, hanh thông thuận toại, khứ tai trừ ách cho thân tâm và gia trung chúng con khang thái, bản mệnh an ninh, toàn gia thành đạt cát tường, vạn sự  như ý.
             Tín chủ con xin cúi đầu bái tạ./.
                                                                                                  Cẩn cáo
(Khi còn ¾ tuần hương thì lễ tạ và hóa vàng, cho vào giọt rượu vào tiền vàng).

Blog TTL Sưu tầm
Xem tiếp…

XEM NGÀY TỐT

13:15 |
Bạn có công việc đại sự, hay các công việc cần thiết ảnh hưởng nhiều góc độ tới tâm linh, hậu vận? Bạn muốn "Xem Ngày Tốt" để dùng cho việc của mình. Xem Ngày Tốt Xấu trước là để "Kính" với Trời Đất, sau là để bày tỏ mong muốn sự tốt đẹp của chủ nhân.

Bạn muốn Xem Ngày Tốt làm nhà, cưới hỏi, động thổ, khai trương, nhập trạch... Hãy chọn nội dung bạn muốn xem và tháng năm bên dưới.

XEM NGÀY TỐT

Xem Ngày Tốt
Xem tiếp…

Bát trạch Minh Cảnh - Kim Oanh Ký

16:29 |
Chào bạn đến với bài viết giới thiệu sách trên Blog TTL

Giới thiệu về sách Bát Trạch Minh Cảnh


Sách Kim Oanh Ký còn có tên là Bát trạch Minh Cảnh của Tác Giả Thái Kim Oanh, gồm:
  • Bát môn thần khóa.
  • Bát trạch minh cảnh
  • Bát tự Lữ tài
  • Bát lãm quần thơ 

Xem tiếp…

Thuật toán tính âm lịch - Hồ Ngọc Đức

15:47 |

Blog TTL giới thiệu thuật toán Tính Lịch Vạn Niên - Tính Âm Lịch của Hồ Ngọc Đức. Các thuật toán ở đây được viết bằng ngôn ngữ JavaScript, bài viết theo Blog TTL sẽ giới thiệu các thuật toán này bằng ngôn ngữ VB (Visua Basic) để xây dựng bộ lịch trên file Excel. Thân mời độc giả chờ đọc bài tiếp theo.

Thuật toán tính âm lịch

Hồ Ngọc Đức


Bài viết sau giới thiệu cách tính âm lịch Việt Nam và mô tả một số thuật toán dùng để chuyển đổi giữa ngày dương lịch và ngày âm lịch. Các thuật toán mô tả ở đây đã được đơn giản hóa nhiều để bạn đọc tiện theo dõi và dễ dàng sử dụng vào việc lập trình, do đó độ chính xác của chúng thấp hơn độ chính xác của chương trình âm lịch trực tuyến tại http://www.informatik.uni-leipzig.de/~duc/amlich/. (Một phiên bản cũ của bài viết này giới thiệu vài thuật toán hơi khác, có thể khó thực hiện hơn một chút. Bản cũ này có thể xem tại đây.)
[If you cannot read Vietnamese: Old version in English]

Quy luật của âm lịch Việt Nam

Âm lịch Việt Nam là một loại lịch thiên văn. Nó được tính toán dựa trên sự chuyển động của mặt trời, trái đất và mặt trăng. Ngày tháng âm lịch được tính dựa theo các nguyên tắc sau:
  1. Ngày đầu tiên của tháng âm lịch là ngày chứa điểm Sóc
  2. Một năm bình thường có 12 tháng âm lịch, một năm nhuận có 13 tháng âm lịch
  3. Đông chí luôn rơi vào tháng 11 âm lịch
  4. Trong một năm nhuận, nếu có 1 tháng không có Trung khí thì tháng đó là tháng nhuận. Nếu nhiều tháng trong năm nhuận đều không có Trung khí thì chỉ tháng đầu tiên sau Đông chí là tháng nhuận
  5. Việc tính toán dựa trên kinh tuyến 105° đông.
Sóc là thời điểm hội diện, đó là khi trái đất, mặt trăng và mặt trời nằm trên một đường thẳng và mặt trăng nằm giữa trái đất và mặt trời. (Như thế góc giữa mặt trăng và mặt trời bằng 0 độ). Gọi là "hội diện" vì mặt trăng và mặt trời ở cùng một hướng đối với trái đất. Chu kỳ của điểm Sóc là khoảng 29,5 ngày. Ngày chứa điểm Sóc được gọi là ngày Sóc, và đó là ngày bắt đầu tháng âm lịch.
Trung khí là các điểm chia đường hoàng đạo thành 12 phần bằng nhau. Trong đó, bốn Trung khí giữa bốn mùa là đặc biệt nhất: Xuân phân (khoảng 20/3), Hạ chí (khoảng 22/6), Thu phân (khoảng 23/9) và Đông chí (khoảng 22/12).
Bởi vì dựa trên cả mặt trời và mặt trăng nên lịch Việt Nam không phải là thuần âm lịch mà là âm-dương-lịch. Theo các nguyên tắc trên, để tính ngày tháng âm lịch cho một năm bất kỳ trước hết chúng ta cần xác định những ngày nào trong năm chứa các thời điểm Sóc (New moon) . Một khi bạn đã tính được ngày Sóc, bạn đã biết được ngày bắt đầu và kết thúc của một tháng âm lịch: ngày mùng một của tháng âm lịch là ngày chứa điểm sóc. Sau khi đã biết ngày bắt đầu/kết thúc các tháng âm lịch, ta tính xem các Trung khí (Major solar term) rơi vào tháng nào để từ đó xác định tên các tháng và tìm tháng nhuận.
Đông chí luôn rơi vào tháng 11 của năm âm lịch. Bởi vậy chúng ta cần tính 2 điểm sóc: Sóc A ngay trước ngày Đông chí thứ nhất và Sóc B ngay trước ngày Đông chí thứ hai. Nếu khoảng cách giữa A và B là dưới 365 ngày thì năm âm lịch có 12 tháng, và những tháng đó có tên là: tháng 11, tháng 12, tháng 1, tháng 2, …, tháng 10. Ngược lại, nếu khoảng cách giữa hai sóc A và B là trên 365 ngày thì năm âm lịch này là năm nhuận, và chúng ta cần tìm xem đâu là tháng nhuận. Để làm việc này ta xem xét tất cả các tháng giữa A và B, tháng đầu tiên không chứa Trung khí sau ngày Đông chí thứ nhất là tháng nhuận. Tháng đó sẽ được mang tên của tháng trước nó kèm chữ "nhuận".
Khi tính ngày Sóc và ngày chứa Trung khí bạn cần lưu ý xem xét chính xác múi giờ. Đây là lý do tại sao có một vài điểm khác nhau giữa lịch Việt Nam và lịch Trung Quốc.Ví dụ, nếu bạn biết thời điểm hội diện là vào lúc yyyy-02-18 16:24:45 GMT thì ngày Sóc của lịch Việt Nam là 18 tháng 2, bởi vì 16:24:45 GMT là 23:24:45 cùng ngày, giờ Hà nội (GMT+7, kinh tuyến 105° đông). Tuy nhiên theo giờ Bắc Kinh (GMT+8, kinh tuyến 120° đông) thì Sóc là lúc 00:24:45 ngày yyyy-02-19, do đó tháng âm lịch của Trung Quốc lại bắt đầu ngày yyyy-02-19, chậm hơn lịch Việt Nam 1 ngày.

Ví dụ 1: Âm lịch năm 1984

Chúng ta áp dụng quy luật trên để tính âm lịch Việt nam năm 1984.
  • Sóc A (ngay trước Đông chí năm 1983) rơi vào ngày 4/12/1983, Sóc B (ngay trước Đông chí năm 1984) vào ngày 23/11/1984.
  • Giữa A và B là khoảng 355 ngày, như thế năm âm lịch 1984 là năm thường. Tháng 11 âm lịch của năm trước kéo dài từ 4/12/1983 đến 2/01/1984, tháng 12 âm từ 3/1/1984 đến 1/2/1984, tháng Giêng từ 2/2/1984 đến 1/3/1984 v.v.

Ví dụ 2: Âm lịch năm 2004

  • Sóc A - điểm sóc cuối cùng trước Đông chí 2003 - rơi vào ngày 23/11/2003. Sóc B (ngay trước Đông chí năm 2004) rơi vào ngày 12/12/2004.
  • Giữa 2 ngày này là khoảng 385 ngày, như vậy năm âm lịch 2004 là năm nhuận. Tháng 11 âm của năm 2003 bắt đầu vào ngày chứa Sóc A, tức ngày 23/11/2003.
  • Tháng âm lịch đầu tiên sau đó mà không chứa Trung khí là tháng từ 21/3/2004 đến 18/4/2004 (Xuân phân rơi vào 20/3/2004, còn Cốc vũ là 19/4/2004). Như thế tháng ấy là tháng nhuận.
  • Từ 23/11/2003 đến 21/3/2004 là khoảng 120 ngày, tức 4 tháng âm lịch: tháng 11, 12, 1 và 2. Như vậy năm 2004 có tháng 2 nhuận.

Thuật toán chuyển đổi giữa ngày dương và âm

Trong tính toán thiên văn người ta lấy ngày 1/1/4713 trước công nguyên của lịch Julius (tức ngày 24/11/4714 trước CN theo lịch Gregorius) làm điểm gốc. Số ngày tính từ điểm gốc này gọi là số ngày Julius (Julian day number) của một thời điểm. Ví dụ, số ngày Julius của 1/1/2000 là 24515455.Dùng các công thức sau ta có thể chuyển đổi giữa ngày/tháng/năm và số ngày Julius. Phép chia ở 2 công thức sau được hiểu là chia số nguyên, bỏ phần dư: 23/4=5.

Đổi ngày dd/mm/yyyy ra số ngày Julius jd

a = (14 - mm) / 12
y = yy+4800-a
m = mm+12*a-3

Lịch Gregory:

jd = dd + (153*m+2)/5 + 365*y + y/4 - y/100 + y/400 - 32045

Lịch Julius:

jd = dd + (153*m+2)/5 + 365*y + y/4 - 32083

Đổi số ngày Julius jd ra ngày dd/mm/yyyy

Lịch Gregory (jd lớn hơn 2299160):

a = jd + 32044;
b = (4*a+3)/146097;
c = a - (b*146097)/4;

Lịch Julius:

b = 0;
c = jd + 32082;

Công thức cho cả 2 loại lịch:

d = (4*c+3)/1461;
e = c - (1461*d)/4;
m = (5*e+2)/153;
dd = e - (153*m+2)/5 + 1;
mm = m + 3 - 12*(m/10);
yy = b*100 + d - 4800 + m/10;
Nếu ngôn ngữ lập trình bạn dùng không hỗ trợ phép chia số nguyên bỏ phần dư (VD: JavaScript), bạn có thể định nghĩa một hàm INT(x) để lấy số nguyên lớn nhất không vượt quá x: INT(5)=5, INT(3.2)=3, INT(-5)=-5, INT(-3.2)=-4 v.v. Khi đó, INT(m/10) sẽ trả lại kết quả của phép chia số nguyên. (Nhiều ngôn ngữ có sẵn hàm floor() cho phép làm việc này.)Các phép chuyển đổi giữa ngày tháng và số ngày Julius có thể được thực hiện với mã JavaScript như sau:
function jdFromDate(dd, mm, yy)
var a, y, m, jd;
a = INT((14 - mm) / 12);
y = yy+4800-a;
m = mm+12*a-3;
jd = dd + INT((153*m+2)/5) + 365*y + INT(y/4) - INT(y/100) + INT(y/400) - 32045;
if (jd < 2299161) {
 jd = dd + INT((153*m+2)/5) + 365*y + INT(y/4) - 32083;
}
return jd;
function jdToDate(jd)
var a, b, c, d, e, m, day, month, year;
if (jd > 2299160) { // After 5/10/1582, Gregorian calendar
 a = jd + 32044;
 b = INT((4*a+3)/146097);
 c = a - INT((b*146097)/4);
} else {
 b = 0;
 c = jd + 32082;
}
d = INT((4*c+3)/1461);
e = c - INT((1461*d)/4);
m = INT((5*e+2)/153);
day = e - INT((153*m+2)/5) + 1;
month = m + 3 - 12*INT(m/10);
year = b*100 + d - 4800 + INT(m/10);
return new Array(day, month, year);
Trong các công thức sau, timeZone là số giờ chênh lệch giữa giờ địa phương và giờ UTC (hay GMT). (Để tính lịch Việt Nam, lấy timeZone = 7.0). Các phương pháp sau được giới thiệu với mã JavaScript. Bạn có thể tải thư viện JavaScript hoặc thư viện PHP hoàn chỉnh để tham khảo.

Tính ngày Sóc

Như trên đã nói, để tính được âm lịch trước hết ta cần xác định các tháng âm lịch bắt đầu vào ngày nào.Thuật toán sau tính ngày Sóc thứ k kể từ điểm Sóc ngày 1/1/1900. Kết quả trả về là số ngày Julius của ngày Sóc cần tìm.
function getNewMoonDay(k, timeZone)
var T, T2, T3, dr, Jd1, M, Mpr, F, C1, deltat, JdNew;
T = k/1236.85; // Time in Julian centuries from 1900 January 0.5
T2 = T * T;
T3 = T2 * T;
dr = PI/180;
Jd1 = 2415020.75933 + 29.53058868*k + 0.0001178*T2 - 0.000000155*T3;
Jd1 = Jd1 + 0.00033*Math.sin((166.56 + 132.87*T - 0.009173*T2)*dr); // Mean new moon
M = 359.2242 + 29.10535608*k - 0.0000333*T2 - 0.00000347*T3; // Sun's mean anomaly
Mpr = 306.0253 + 385.81691806*k + 0.0107306*T2 + 0.00001236*T3; // Moon's mean anomaly
F = 21.2964 + 390.67050646*k - 0.0016528*T2 - 0.00000239*T3; // Moon's argument of latitude
C1=(0.1734 - 0.000393*T)*Math.sin(M*dr) + 0.0021*Math.sin(2*dr*M);
C1 = C1 - 0.4068*Math.sin(Mpr*dr) + 0.0161*Math.sin(dr*2*Mpr);
C1 = C1 - 0.0004*Math.sin(dr*3*Mpr);
C1 = C1 + 0.0104*Math.sin(dr*2*F) - 0.0051*Math.sin(dr*(M+Mpr));
C1 = C1 - 0.0074*Math.sin(dr*(M-Mpr)) + 0.0004*Math.sin(dr*(2*F+M));
C1 = C1 - 0.0004*Math.sin(dr*(2*F-M)) - 0.0006*Math.sin(dr*(2*F+Mpr));
C1 = C1 + 0.0010*Math.sin(dr*(2*F-Mpr)) + 0.0005*Math.sin(dr*(2*Mpr+M));
if (T < -11) {
 deltat= 0.001 + 0.000839*T + 0.0002261*T2 - 0.00000845*T3 - 0.000000081*T*T3;
} else {
 deltat= -0.000278 + 0.000265*T + 0.000262*T2;
};
JdNew = Jd1 + C1 - deltat;
return INT(JdNew + 0.5 + timeZone/24)
Với hàm này ta có thể tính được tháng âm lịch chứa ngày N bắt đầu vào ngày nào: giữa ngày 1/1/1900 (số ngày Julius: 2415021) và ngày N có khoảng k=INT((N-2415021)/29.530588853) tháng âm lịch, như thế dùng hàm getNewMoonDay sẽ biết ngày đầu tháng âm lịch chứa ngày N, từ đó ta biết ngày N là mùng mấy âm lịch.

Tính tọa độ mặt trời

Để biết Trung khí nào nằm trong tháng âm lịch nào, ta chỉ cần tính xem mặt trời nằm ở khoảng nào trên đường hoàng đạo vào thời điểm bắt đầu một tháng âm lịch. Ta chia đường hoàng đạo làm 12 phần và đánh số các cung này từ 0 đến 11: từ Xuân phân đến Cốc vũ là 0; từ Cốc vũ đến Tiểu mãn là 1; từ Tiểu mãn đến Hạ chí là 2; v.v.. Cho jdn là số ngày Julius của bất kỳ một ngày, phương pháp sau này sẽ trả lại số cung nói trên.function getSunLongitude(jdn, timeZone)
var T, T2, dr, M, L0, DL, L;
T = (jdn - 2451545.5 - timeZone/24) / 36525; // Time in Julian centuries from 2000-01-01 12:00:00 GMT
T2 = T*T;
dr = PI/180; // degree to radian
M = 357.52910 + 35999.05030*T - 0.0001559*T2 - 0.00000048*T*T2; // mean anomaly, degree
L0 = 280.46645 + 36000.76983*T + 0.0003032*T2; // mean longitude, degree
DL = (1.914600 - 0.004817*T - 0.000014*T2)*Math.sin(dr*M);
DL = DL + (0.019993 - 0.000101*T)*Math.sin(dr*2*M) + 0.000290*Math.sin(dr*3*M);
L = L0 + DL; // true longitude, degree
L = L*dr;
L = L - PI*2*(INT(L/(PI*2))); // Normalize to (0, 2*PI)
return INT(L / PI * 6)
Với hàm này ta biết được một tháng âm lịch chứa Trung khí nào. Giả sử một tháng âm lịch bắt đầu vào ngày N1 và tháng sau đó bắt đầu vào ngày N2 và hàm getSunLongitude cho kết quả là 8 với N1 và 9 với N2. Như vậy tháng âm lịch bắt đầu ngày N1 là tháng chứa Đông chí: trong khoảng từ N1 đến N2 có một ngày mặt trời di chuyển từ cung 8 (sau Tiểu tuyết) sang cung 9 (sau Đông chí). Nếu hàm getSunLongitude trả lại cùng một kết quả cho cả ngày bắt đầu một tháng âm lịch và ngày bắt đầu tháng sau đó thì tháng đó không có Trung khí và như vậy có thể là tháng nhuận.

Tìm ngày bắt đầu tháng 11 âm lịch

Đông chí thường nằm vào khoảng 19/12-22/12, như vậy trước hết ta tìm ngày Sóc trước ngày 31/12. Nếu tháng bắt đầu vào ngày đó không chứa Đông chí thì ta phải lùi lại 1 tháng nữa.function getLunarMonth11(yy, timeZone)
var k, off, nm, sunLong;
off = jdFromDate(31, 12, yy) - 2415021;
k = INT(off / 29.530588853);
nm = getNewMoonDay(k, timeZone);
sunLong = getSunLongitude(nm, timeZone); // sun longitude at local midnight
if (sunLong >= 9) {
 nm = getNewMoonDay(k-1, timeZone);
}
return nm;

Xác định tháng nhuận

Nếu giữa hai tháng 11 âm lịch (tức tháng có chứa Đông chí) có 13 tháng âm lịch thì năm âm lịch đó có tháng nhuận. Để xác định tháng nhuận, ta sử dụng hàm getSunLongitude như đã nói ở trên. Cho a11 là ngày bắt đầu tháng 11 âm lịch mà một trong 13 tháng sau đó là tháng nhuận. Hàm sau cho biết tháng nhuận nằm ở vị trí nào sau tháng 11 này.function getLeapMonthOffset(a11, timeZone)
var k, last, arc, i;
k = INT((a11 - 2415021.076998695) / 29.530588853 + 0.5);
last = 0;
i = 1; // We start with the month following lunar month 11
arc = getSunLongitude(getNewMoonDay(k+i, timeZone), timeZone);
do {
 last = arc;
 i++;
 arc = getSunLongitude(getNewMoonDay(k+i, timeZone), timeZone);
} while (arc != last && i < 14);
return i-1;
Giả sử hàm getLeapMonthOffset trả lại giá trị 4, như thế tháng nhuận sẽ là tháng sau tháng 2 thường. (Tháng thứ 4 sau tháng 11 đáng ra là tháng 3, nhưng vì đó là tháng nhuận nên sẽ lấy tên của tháng trước đó tức tháng 2, và tháng thứ 5 sau tháng 11 mới là tháng 3).

Đổi ngày dương dd/mm/yyyy ra ngày âm

Với các phương pháp hỗ trợ trên ta có thể đổi ngày dương dd/mm/yy ra ngày âm dễ dàng. Trước hết ta xem ngày monthStart bắt đầu tháng âm lịch chứa ngày này là ngày nào (dùng hàm getNewMoonDay như trên đã nói). Sau đó, ta tìm các ngày a11 và b11 là ngày bắt đầu các tháng 11 âm lịch trước và sau ngày đang xem xét. Nếu hai ngày này cách nhau dưới 365 ngày thì ta chỉ còn cần xem monthStart và a11 cách nhau bao nhiêu tháng là có thể tính được dd/mm/yy nằm trong tháng mấy âm lịch. Ngược lại, nếu a11 và b11 cách nhau khoảng 13 tháng âm lịch thì ta phải tìm xem tháng nào là tháng nhuận và từ đó suy ra ngày đang tìm nằm trong tháng nào.function convertSolar2Lunar(dd, mm, yy, timeZone)
var k, dayNumber, monthStart, a11, b11, lunarDay, lunarMonth, lunarYear, lunarLeap;
dayNumber = jdFromDate(dd, mm, yy);
k = INT((dayNumber - 2415021.076998695) / 29.530588853);
monthStart = getNewMoonDay(k+1, timeZone);
if (monthStart > dayNumber) {
 monthStart = getNewMoonDay(k, timeZone);
}
a11 = getLunarMonth11(yy, timeZone);
b11 = a11;
if (a11 >= monthStart) {
 lunarYear = yy;
 a11 = getLunarMonth11(yy-1, timeZone);
} else {
 lunarYear = yy+1;
 b11 = getLunarMonth11(yy+1, timeZone);
}
lunarDay = dayNumber-monthStart+1;
diff = INT((monthStart - a11)/29);
lunarLeap = 0;
lunarMonth = diff+11;
if (b11 - a11 > 365) {
 leapMonthDiff = getLeapMonthOffset(a11, timeZone);
 if (diff >= leapMonthDiff) {
  lunarMonth = diff + 10;
  if (diff == leapMonthDiff) {
   lunarLeap = 1;
  }
 }
}
if (lunarMonth > 12) {
 lunarMonth = lunarMonth - 12;
}
if (lunarMonth >= 11 && diff < 4) {
 lunarYear -= 1;
}

Đổi âm lịch ra dương lịch

Cách làm cũng tương tự như đổi ngày dương sang ngày âm.function convertLunar2Solar(lunarDay, lunarMonth, lunarYear, lunarLeap, timeZone)
var k, a11, b11, off, leapOff, leapMonth, monthStart;
if (lunarMonth < 11) {
 a11 = getLunarMonth11(lunarYear-1, timeZone);
 b11 = getLunarMonth11(lunarYear, timeZone);
} else {
 a11 = getLunarMonth11(lunarYear, timeZone);
 b11 = getLunarMonth11(lunarYear+1, timeZone);
}
off = lunarMonth - 11;
if (off < 0) {
 off += 12;
}
if (b11 - a11 > 365) {
 leapOff = getLeapMonthOffset(a11, timeZone);
 leapMonth = leapOff - 2;
 if (leapMonth < 0) {
  leapMonth += 12;
 }
 if (lunarLeap != 0 && lunarMonth != leapMonth) {
  return new Array(0, 0, 0);
 } else if (lunarLeap != 0 || off >= leapOff) {
  off += 1;
 }
}
k = INT(0.5 + (a11 - 2415021.076998695) / 29.530588853);
monthStart = getNewMoonDay(k+off, timeZone);
return jdToDate(monthStart+lunarDay-1);

Tính ngày thứ và Can-Chi cho ngày và tháng âm lịch

Ngày thứ lặp lại theo chu kỳ 7 ngày, như thế để biết một ngày d/m/y bất kỳ là thứ mấy ta chỉ việc tìm số dư của số ngày Julius của ngày này cho 7.Để tính Can của năm Y, tìm số dư của Y+6 chia cho 10. Số dư 0 là Giáp, 1 là Ất v.v. Để tính Chi của năm, chia Y+8 cho 12. Số dư 0 là Tý, 1 là Sửu, 2 là Dần v.v.
Hiệu Can-Chi của ngày lặp lại theo chu kỳ 60 ngày, như thế nó cũng có thể tính được một cách đơn giản. Cho N là số ngày Julius của ngày dd/mm/yyyy. Ta chia N+9 cho 10. Số dư 0 là Giáp, 1 là Ất v.v. Để tìm Chi, chia N+1 cho 12; số dư 0 là Tý, 1 là Sửu v.v.
Trong một năm âm lịch, tháng 11 là tháng Tý, tháng 12 là Sửu, tháng Giêng là tháng Dần v.v. Can của tháng M năm Y âm lịch được tính theo công thức sau: chia Y*12+M+3 cho 10. Số dư 0 là Giáp, 1 là Ất v.v.
Ví dụ, Can-Chi của tháng 3 âm lịch năm Giáp Thân 2004 là Mậu Thìn: tháng 3 âm lịch là tháng Thìn, và (2004*12+3+3) % 10 = 24054 % 10 = 4, như vậy Can của tháng là Mậu.
Một tháng nhuận không có tên riêng mà lấy tên của tháng trước đó kèm thêm chữ "Nhuận", VD: tháng 2 nhuận năm Giáp Thân 2004 là tháng Đinh Mão nhuận.

Tài liệu tham khảo

Mời bạn xem bài viết tiếp theo: Lịch Vạn Niên và thật toán bằng ngôn ngữ Visual Basic
Xem tiếp…

Blog TTL VỚI THỜI GIAN

Breaking News