Chủ Nhật, 6 tháng 12, 2015

Giờ Âm Lịch Việt Nam

Trong cuộc sống có nhiều người không biết hay hỏi nhau là:

Giờ Tý là mấy giờ?
Giờ Ngọ là mấy giờ?
..............................?

Bình thường thì được trả lời là:

Giờ Tý là 23h đến 1h sáng
Giờ Ngọ là lúc 11h đến 13h chiều
...................

Chính những câu hỏi đó mình đã hỏi lúc còn nhỏ, bởi sự tò mò rằng: Tại sao đã có đồng hồ để đo thời gian rồi mà người ta vẫn cứ giờ Tý, Sửu... để làm các việc gì đó.

Đúng rồi bạn ạ! bây giờ người ta vẫn sử dụng 2 loại đơn vị đo thời gian của một ngày đó là:

- Giờ pháp lịch Việt Nam: Sử dụng theo quy chuẩn quốc tế lấy múi giờ là GMT+7, hay còn gọi là giờ Hà Nội. Một ngày có 24h, mỗi giờ là 60h
- Giờ âm lịch: một ngày được chia thành 12 giờ, mỗi giờ lấy tên một con giáp, bắt đầu từ giờ rồi đến Sửu, Dần Mão Thìn Tỵ Ngọ Mùi Thân Dậu Tuất Hợi. Ban đêm được được gọi là Canh. Ví dụ Canh 1, Canh Hai... đến Canh 5

Đi vào vấn đề chính nhé! đó là quy đổi giữa giờ Pháp Lịch và giờ Âm Lịch, hãy giải quyết câu hỏi này trước:

Giờ Ngọ bắt đầu từ mấy giời và kết thúc mấy giờ?

Để nhìn lại bản chất của hai đơn vi đo thời gian ở trên ta có nhận xét như sau:

- Giờ Pháp Lịch lấy mốc thời theo Kinh độ của quả đất là kính tuyến 7, vì vậy có sự liên quan đến vị trí địa lý.
- Giờ âm lịch: ngày trước các bậc tiền nhân xác định bằn giờ chính ngọ là lúc Mặt trời đứng bóng rồi suy ra các giời khác. Như vậy giờ âm lịch có liên quan tới tính thiên văn.

Ngày nay một số chương trình hoặc website cho phép bạn tính toán được giờ mặt trời Mọc, Lặn, đạt tới đỉnh của nó tại mỗi vị trí khác nhau như: Yahoo Weather, Câu Cá...

Ví dụ 1: ngày 01/01/2015 tại Đảo Phú Quốc () Mặt Trời mọc 6h21, lặn: 17h53, Chính Ngọ lúc 12h07

Ví dụ 2: ngày 01/01/2015 tại TP. HCM () Mặt Trời mọc 6h11, lặn: 17h41, Chính Ngọ lúc 11h56

Như vậy ta suy được bảng giờ âm lịch:

  • - Tại Đảo Phú Quốc: Giờ Tý: 23h07-1h07, Sửu: 1h07-3h07....
  • - Còn tại TPHCM: Giờ Tý: 22h56-0h56, Sửu: 0h56-2h56...


Kết quả cho ta thấy bảng giờ ở hai vị trí khác nhau.

Có vẻ phức tạp phải không bạn?

Vậy phương pháp xác định giờ âm lịch thế nào cho đúng?

CÁCH XÁC ĐỊNH BẢNG GIỜ ÂM LỊCH

CÁCH 1: SỬ DỤNG CHƯƠNG TRÌNH LỊCH VẠN NIÊN EXCEL

Đây là chương trình mình soạn ra, được chạy trên cở sở thuật toán thiên văn, bạn tải về và vào mục cài đặt để sét vị trí Kinh Độ, Vỹ Độ theo hướng dẫn ở trong đó.

Địa chỉ tải: http://trantuliem.blogspot.com/2013/01/lich-van-nien-ttl-excel.html
Tải dự phòng: http://nhaban.today/wp-content/uploads/2014/12/LICH-VAN-NIEN-EXCEL-V1.0.xls



Chương trình chỉ chạy được trên máy tính và phải có Microffice EXCE.

CÁCH 2: SỬ DỤNG CÁCH TÍNH GIỜ CHÍNH NGỌ HỒ NGỌC ĐỨC

Sử dụng lịch của Hồ Ngọc Đức để xác định giờ Chính Ngọ sau đó bạn phải tự tính ra các giờ khác. Xem theo đường link này:
http://www.informatik.uni-leipzig.de/~duc/amlich/vncal.html


CÁCH 3: HƯỚNG DẪN BẠN TỰ TÍNH


Cách tính này bắt buộc bạn phải có dữ liệu đầu vào là giờ mặt trời lặn và mặt trời mọc, bạn có thể tìm các dữ liệu này ở nhiều nơi ví dụ:


Trên blog lịch treo tường.

Trên Yahoo thời tiết: https://weather.yahoo.com/


Hoặc bạn gõ tren google với từ khóa: "sunrise and sunset"


Ta tiến hành tìm giờ chính ngọ ngày 01/01/2015 tại TP. HCM () từ 2 dữ liệu: Mặt Trời mọc 6h11, lặn: 17h41.


- Mặt trời mọc phú thứ: a = 6x60+11 = 371

- Mặt trời lặn phút thứ: b = 17x60+41 = 1061

- Mặt trời chính ngọ ở phút thứ: c = (a+b):2 = (371+1061):2 = 716

- Đổi kết quả này thành giờ phút: chia c cho 60, phần nguyên là giờ, phân dư là phú:

Lấy 716 chia cho 60: được phần nguyên: 11, được phần dư là 56


Kết quả: Chính ngọ ngày 01/01/2015 tại TPHCM là 11 giờ 56 phút trùng với kết quả trong ví dụ 2 ở trên.

Lưu ý: phương pháp này là tương đối trong thuật toán thiên văn họ không tính thế này.

Tổng quát lại:

Khi chúng ta không quan tâm tới yếu tố thời gian âm lịch thì vấn đề này chẳng có ý nghĩa gì. Còn khi bạn đã đọc đến đây và quan tâm thì nó là một vấn đề cốt lõi trong văn hóa và những việc tâm linh. Những ví dụ sau có thể bạn hình dung được một số góc cạnh: 

Chọn giờ để khâm liệm, nếu bạn chọn nhầm giờ vào tứ hành xung, trùng tang...? Các vấn đề cưới hỏi, động thổ... củng như vậy.

Xem lá số tử vi: 70% khó khăn của tử vi đó chính là xác định giờ sinh, khi xác định được giờ sinh mọi việc thường dễ dàng hơn.

....

Trong sách Bát Trạch Minh Cảnh của Thái Kim Oanh có phần trình bày đầu tiên là phần hướng dẫn chọn giờ âm lịch, tuy nhiên theo mình là sai nhé bạn!

Tôi nghỉ rằng bạn đọc quan tâm về lĩnh vực này sẽ khó khăn để hiểu bài viết. TTL Blog gợi ý cho các bạn hãy tải chương trình của tôi về và tham khảo các kết quả của các ngày bình thường, các ngày đặc biệt... để có nhận định chung hơn, sau đó cùng tìm hiểu nhé!

Các bạn có thể xem các bài viết liên quan do mình viết:
Đọc thêm »

Thứ Hai, 16 tháng 11, 2015

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

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ỉnh sử và cập nhật lại ngày 28/8/2015)
Bản dùng thử 30 ngày

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

http://www.mediafire.com/download/a68o25pg2i10so3/lich+van+nien+excel+v1.1.rar

(Đã chỉnh sử và cập nhật lại ngày 28/08/2015)
Bản dùng thử 30 ngày

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

Thứ Tư, 16 tháng 9, 2015

LỊCH VẠN SỰ 2016


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:
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

GIỌNG NÓI ÂM THANH TRONG NHÂN TƯỚNG

Chúng ta biết rằng khi ốm, khi bệnh giọng nói sẽ khác đi, khi vui giọng nói lại khác, khi mạnh mẽ giọng nói cũng mạnh mẽ có hồn, khi ta buồn thì ngược lại... Như vậy âm thanh giọng nói có sự bắt nguồn và phản ánh tố chất bên trong.

  • Trong đông y có sử dụng âm thanh để bắt bệnh.
  • Trong điều tra hình sự để phân biệt sự giả dối
  • ....
  • Và trong đời sống ta sử dụng âm thanh để thể hiện nhiều thứ, ví dụ như: "Em yêu!", "Em ơi", "Em Bi của bố đi học có ngoan không?"...

Bài viết bên dưới cho bạn một khái niện về âm thanh giọng nói trong nhân tướng.

Âm thanh là một phạm trù vật chất ta có thể sinh ra và cảm nhận, hãy tận hưởng...

Âm thanh trong tướng học cũng như Môn học đóng một vai trò trọng yếu , giúp biết được rất nhiều về con người trên nhiều bình diện. Do đó, cổ tướng học đặc biệt chú trọng đến phần xem tướng âm thanh.
thuy kieu
Hình minh họa Thúy Kiều

Đọc thêm »

Thứ Hai, 14 tháng 9, 2015

Chi sẽ Theme blogspot mobi đẹp và SEO rất tốt

TTL Blog đã làm một blogspot cho công ty của mình rất công phu và nhiều thời gian, và có phiên bản di động (mobi) và SEO rất tốt:


Hình ảnh minh hoạ phiên bản Desktop:


theme blogsptdep
Theme ở dạng desktop

theme blog SEO


Hình ảnh theme mobi

theme blogspot mobi
theme blogspot mobi bài viết

theme blogspot mobi bài viết
Theme blogspot lúc xem trang chủ
TTL Blog không cho phép bạn download theme ở đây, bạn muốn tải về vui lòng gửi mail cho mình. Yêu cầu là phạn phải ghi nguồn themme.

Email: trantuliem@yahoo.com.vn

Mình sẽ gửi mail cho các bạn theme blog này và hướng hẫn chi tiết khi cài đặt, hướng dẫn bạn tối ưu hình ảnh, SEO on page.

Bạn có thể tải các theme blogsot khác do TTL Blog chia sẽ:

Trân trọng!

TTL Blog

Chủ Nhật, 13 tháng 9, 2015

XEM TỬ VI NĂM 2016 ( Bính Thân ) các tuổi

Bạn có biết năm 2016 là năm gì?


Năm 2016 là năm Thân (năm con khỉ ) là Bính Thân nhé bạn.

Là năm của Đại Thánh - Tôn Hành Giả - Giả Hành Tôn


Năm 2016 mạng gì?

Năm 2016 mạng Hỏa ( Lửa chân núi)

Tử vi năm 2016 của bạn vào năm Thân này thế nào?

TỬ VI 2016


TTL Blog đang xây dựng các bài viết về tử vi năm 2016 để phụ vụ nhu cầu tìm hiểu của các độc giả thân quen của Blog. Đây là một công trình sẽ có gần 70 bài viết về tử vi các tuổi từ 18 đển khoảng 90, hi vọng sẽ xong sớm, để các bạn tra vận hạn tử vi, kiểm tra công danh, tiền bạc, tình cảm của chính bạn hoặc người thân trong gia đình.

Tử vi 2016 sẽ có khoảng 100 bài viết rất mất nhiều thời gian và công sức, ủng hộ TTL Blog bằng cái LIKE nhé


Xem Tử Vi Năm 2016


(Vận Hạn, Công Danh, Tiền Bạc, Học Hành, Sức Khỏe, Tình Cảm... Bói Tử Vi 2016)
TUỔI TÝTUỔI SỬUTUỔI DẦNTUỔI MÃO
Giáp Tý 1984Đinh Sửu 1997Mậu Dần 1998Kỹ Mão 1999
Canh Tý 1960Ất Sửu 1985Bính Dần 1986Đinh Mão 1987
Bính Tý 1996Kỷ Sửu 1949Canh Dần 1950Ất Mão 1975
Mậu Tý 1948Quý Sửu 1973Giáp Dần 1974Quý Mão 1963
Nhâm Tý 1972Tân Sửu 1961Nhâm Dần 1962Tân Mão 1951
Bính Tý 1936Đinh Sửu 1937Mậu Dần 1926Kỹ Mão 1939
TUỔI THÌNTUỔI TỊTUỔI NGỌTUỔI MÙI
Mậu Thìn 1988Ất Tỵ 1965Bính Ngọ 1966Ất Mùi 1955
Bính Thìn 1976Đinh Tỵ 1977Canh Ngọ 1990Đinh Mùi 1967
Giáp Thìn 1964Kỷ Tỵ 1989Giáp Ngọ 1954Kỷ Mùi 1979
Nhâm Thìn 1952Quý Tỵ 1953Mậu Ngọ 1978Tân Mùi 1991




TUỔI THÂNTUỔI DẬUTUỔI TUẤTTUỔI HỢI
Bính Thân 1956Ất Dậu 1945Bính Tuất 1946Ất Hợi 1995
Canh Thân 1980Đinh Dậu 1957Canh Tuất 1970Đinh Hợi 1947
Mậu Thân 1968Kỷ Dậu 1969Giáp Tuất 1994Kỷ Hợi 1959
Nhâm Thân 1992Quý Dậu 1993Mậu Tuất 1958Tân Hợi 1971

Tân Dậu 1981Nhâm Tuất 1982Quý Hợi 1983

XEM TỬ VI NĂM 2016



TỪ KHÓA: TỬ VI NĂM 2016, XEM TỬ VI NĂM 2016, XEM TU VI NAM 2016, TU VI 2016, TỬ VI NĂM BÍNH THÂN, VẬN HẠN NĂM 2016, VAN HAN NAM 2016