• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Class chuyển đổi Dương lịch <--> Âm lịch

Bộ sưu tập các thư viện hỗ trợ sẳn cho Visual Basic .NET và C#

Điều hành viên: tungcan5diop, QUANITGROBEST

Nội qui chuyên mục
1. Gửi bài viết tại đây, Tester sẽ chuyển vào trong nếu bài viết đạt yêu cầu.
2. Gửi bài theo mẫu qui định: viewtopic.php?f=2&t=5
[ten][/ten]
[loai][/loai]
[ngonngu][/ngonngu]
[tacgia][/tacgia]
[chucnang][/chucnang]
[end][/end]
Hình đại diện của người dùng
Kasper
Guru
Guru
Bài viết: 1061
Ngày tham gia: T.Sáu 16/05/2008 10:54 am
Has thanked: 2 time
Been thanked: 76 time
Liên hệ:

Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi Kasper » T.Năm 14/01/2010 2:16 pm

Tên: Lunar Class
Loại: Class
Ngôn ngữ lập trình: VB .NET
Tác giả: * Bản quyền Hồ Ngọc Đức
* Test, Edit and Translate by vie87vn
* Convert VB .NET 2008 by Kasper

Chức năng: Đổi lịch Âm Dương



Do nhu cầu dùng .NET ngày càng nhiều, tôi thực hiện convert module đổi lịch của HNĐ sang .NET
Cần nói thêm rằng: trong âm lịch, không ai dùng năm theo số mà phải dùng theo can chi, ví dụ 1/1/2009, mà chỉ có 1/1 năm Kỷ Sửu. (Mùng một tháng một năm Kỷ Sửu). Và để hiển thị Dương lịch theo định dạng dd/MM/yyyy, khi convert sang .NET, tôi xây dựng bổ sung cho 2 cấu trúc FakeDate và AllLunarInfo.

  1.     Public Structure FakeDate
  2.         Dim fdDay As Double
  3.         Dim fdMonth As Double
  4.         Dim fdYear As Double
  5.  
  6.         Sub New(ByVal d As Date)
  7.             fdDay = d.Day
  8.             fdMonth = d.Month
  9.             fdYear = d.Year
  10.         End Sub
  11.  
  12.         Public Shadows Function ToString()
  13.             Return fdDay & "/" & fdMonth & "/" & fdYear
  14.         End Function
  15.     End Structure
  16.  


  1.     Public Structure AllLunarInfo
  2.         Dim sDayNameOfWeek As String ' Tên ngày trong tuần
  3.         Dim fdLunarDate As FakeDate ' Ngày, tháng, năm Âm lịch
  4.         Dim dDayOfLeap As Double ' Thuộc tháng nhuận = 1
  5.         Dim dLeap As Double ' Tháng nhuận = 0 là không có
  6.         Dim dLeapMonth As Double ' Nếu có tháng nhuận, trả về tháng đó
  7.         Dim fdLeap2SolarFrom As FakeDate ' Tương ứng với ngày dương lịch: từ
  8.         Dim fdLeap2SolarTo As FakeDate ' Tương ứng với ngày dương lịch: đến
  9.         Dim dMonthLenght As Double ' Số ngày trong tháng, nếu > 29 thì là tháng đủ
  10.         Dim sVMonthName As String ' Tên tháng gọi theo âm lịch
  11.         Dim sDayCanChi As String
  12.         Dim sMonthCanChi As String
  13.         Dim sYearCanChi As String
  14.         Dim sHourCanChi As String
  15.         Dim sTietKhi As String
  16.         Dim fdStartSolarDateTietKhi As FakeDate ' Ngày đầu tiết khí theo Dương lịch
  17.         Dim fdStartLunarDateTietKhi As FakeDate ' Ngày đầu tiết khí theo Âm lịch
  18.  
  19.         Public Function ToLunarDate() As String
  20.             ' Định dạng ngày tháng theo âm lịch. Ví dụ: 20/11 năm Canh Dần
  21.             Return fdLunarDate.fdDay & "/" & fdLunarDate.fdMonth & " năm " & sYearCanChi
  22.         End Function
  23.  
  24.         Public Function ToLunarTietKhi() As String
  25.             ' Định dạng ngày tháng theo âm lịch. Ví dụ: 20/11 năm Canh Dần
  26.             Return fdStartLunarDateTietKhi.fdDay & "/" & fdStartLunarDateTietKhi.fdMonth & " năm " & sYearCanChi
  27.         End Function
  28.     End Structure
  29.  


Trong một topic khác có một bạn hỏi anh truongphu về việc convert từ âm lịch sang dương lịch. Sau khi xem code, tôi đã thấy module của HNĐ có hỗ trợ chuyển từ âm lịch sang dương lịch. Sử dụng như sau:
  1.         Dim lunar As New clsLunar
  2.  
  3.         With lunar.Lunar2Solar(30, 11, 2009, 1, 7)
  4.             MessageBox.Show(.ToString)
  5.         End With
  6.  


Tôi đính kèm một project sử dụng Lunar.dll

và cuối cùng, mạn phép tác giả sửa lại lỗi chính tả Sonar -> Solar (Dương lịch).
Tập tin đính kèm
Lunar.zip
(238.41 KiB) Đã tải 2889 lần


Lành tợ tòng, ác tợ hoa,
Nhà hòa muôn việc đều nên.

Hình đại diện của người dùng
bocapit
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 393
Ngày tham gia: T.Năm 02/10/2008 6:34 am
Đến từ: C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\
Has thanked: 1 time
Been thanked: 44 time

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi bocapit » T.Năm 14/01/2010 3:31 pm

Ấy chà cảm ơn bác Kasper nhiều nha, có cái này dỡ quá rồi, khỏi ngồi mà mò những cái gì gì nào là Can, Chi, giờ hoàn đạo,.... :D
Cho hỏi tí, cái model Hồ Ngọc Đức viết bằng gì mà bác chuyển sang net vậy? Chẳng lẽ nguyên gốc javascript ha?
^#(^ Không có định mệnh, mọi chuyện do chính ta tạo nên. [-X

Hình đại diện của người dùng
Kasper
Guru
Guru
Bài viết: 1061
Ngày tham gia: T.Sáu 16/05/2008 10:54 am
Has thanked: 2 time
Been thanked: 76 time
Liên hệ:

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi Kasper » T.Năm 14/01/2010 4:29 pm

bocapit đã viết:Ấy chà cảm ơn bác Kasper nhiều nha, có cái này dỡ quá rồi, khỏi ngồi mà mò những cái gì gì nào là Can, Chi, giờ hoàn đạo,.... :D
Cho hỏi tí, cái model Hồ Ngọc Đức viết bằng gì mà bác chuyển sang net vậy? Chẳng lẽ nguyên gốc javascript ha?


Source bằng VB mình down từ 4rum này về, chuyển qua .dll trên .NET luôn cho các bạn dễ sử dụng.
Lành tợ tòng, ác tợ hoa,
Nhà hòa muôn việc đều nên.

Pherotao
Thành viên chính thức
Thành viên chính thức
Bài viết: 13
Ngày tham gia: T.Ba 29/12/2009 1:57 pm
Liên hệ:

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi Pherotao » CN 17/01/2010 10:13 am

Rất cảm ơn Kasper. Ah, tiện thể anh xem các bài viết của tôi về Access và góp ý giùm! Từ khi tiếp xúc mvt đến nay, tôi chỉ tìm hiểu Access thôi. Cũng muốn học ngôn ngữ C++ lắm, nhưng ko có điều kiện học, với lại ở Sóc Trăng này làm gì có lớp lập trình nào. Thường thì tôi tìm hiểu qua Net, download về rồi thì chỉnh lại theo ý mình muốn. Tôi đang thực hiện một chương trình Quản lý Giáo xứ cho một Linh mục (=Access). Có nhiều vấn đề phát sinh khó hiểu trong quá trình viết, tuy nhiên, xem qua các bài viết của các anh - chị, ít nhiều cũng giải quyết được.

Hình đại diện của người dùng
Kasper
Guru
Guru
Bài viết: 1061
Ngày tham gia: T.Sáu 16/05/2008 10:54 am
Has thanked: 2 time
Been thanked: 76 time
Liên hệ:

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi Kasper » T.Hai 18/01/2010 8:55 am

Pherotao đã viết:Rất cảm ơn Kasper. Ah, tiện thể anh xem các bài viết của tôi về Access và góp ý giùm! Từ khi tiếp xúc mvt đến nay, tôi chỉ tìm hiểu Access thôi. Cũng muốn học ngôn ngữ C++ lắm, nhưng ko có điều kiện học, với lại ở Sóc Trăng này làm gì có lớp lập trình nào. Thường thì tôi tìm hiểu qua Net, download về rồi thì chỉnh lại theo ý mình muốn. Tôi đang thực hiện một chương trình Quản lý Giáo xứ cho một Linh mục (=Access). Có nhiều vấn đề phát sinh khó hiểu trong quá trình viết, tuy nhiên, xem qua các bài viết của các anh - chị, ít nhiều cũng giải quyết được.


Xưa giờ ít khi viết code = Access luôn, chỉ sử dụng Access làm csdl thôi, sao bạn không thử dùng VB (hoặc VB.NET) để viết , phần mềm dạng quản lý thì trên 4rum ta có rất nhiều, bạn chịu khó tham khảo + nhờ các mem tư vấn (nếu gặp vấn đề khó). :D
Lành tợ tòng, ác tợ hoa,
Nhà hòa muôn việc đều nên.

tamnv
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 56
Ngày tham gia: T.Năm 30/04/2009 10:52 pm

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi tamnv » T.Hai 22/02/2010 9:54 pm

Bác Kasper Vui lòng hướng dẫn chạy chương trình. Tôi chạy toàn báo lỗi thôi...

rickypham
Thành viên chính thức
Thành viên chính thức
Bài viết: 28
Ngày tham gia: T.Sáu 27/04/2012 5:54 pm
Has thanked: 21 time

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi rickypham » T.Ba 17/07/2012 2:00 pm

Em có làm 3 textbox dự định để nhập ngày, tháng, năm nhưng không biết có cách nào đặt sẵn value của các ô textbox là ngày, tháng, năm của hệ thống luôn không ạ? Nếu ai muốn đổi thì đổi bằng tay còn nếu không muốn thì nó sẽ ra ngày hệ thống luôn cho tiện.
Em dùng hàm
dim ngay as double = textbox1.text = Today.day thì nó hiểu nhưng không hiện giá trị ngày trên ô textbox 1
Có ai biết cách không ạ?

Ngoài ra cho em hỏi có cách nào lấy năm âm lịch theo kiểu số không ạ?
VD năm Nhâm Thìn (năm nay) thì lấy là 2012 ấy ạ? Em biết là năm âm thì người ta hay gọi theo Can Chi nhưng đôi khi xem bằng số thì ta sẽ dễ nhận biết khoảng năm đó hơn ạ.

Chưa thấy ai trả lời nên em bổ sung thêm câu hỏi luôn là em muốn chuyển từ âm lịch ngược lại dương lịch nhưng em không hiểu cái tham số dLunarLeap nghĩa là sao, em điền thử số 1 thì nó ra lệnh lung tung hết, còn điền số 0 thì ngày đúng nhưng trúng tháng nhuận thì sau mất tiêu

Hình đại diện của người dùng
Kasper
Guru
Guru
Bài viết: 1061
Ngày tham gia: T.Sáu 16/05/2008 10:54 am
Has thanked: 2 time
Been thanked: 76 time
Liên hệ:

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi Kasper » T.Tư 25/07/2012 9:11 am

tham số dLunarLeap là tham số chỉ tháng nhuận của năm âm lịch, dLunarLeap = 0: không có tháng nhuận. Khi chuyển đổi từ âm lịch sang dương lịch, để cho chính xác thì tham số dLunarLeap bạn không nên gõ vào trực tiếp là 0 hoặc 1 vì ta không biết năm cần chuyển đổi có tháng nhuận hay không nhuận, ta truyền tham số này thông qua việc lấy nó từ hàm GetAllLunarInfo thì sẽ chính xác nhất.
Ví dụ:
  1. Dim ln As New clsLunar
  2. Dim dSolar As New FakeDate(sDate)
  3. With ln.GetAllLunarInfo(1, 6, sDate.Year, 7) ' sDate chứa ngày tháng năm âm lịch cần chuyển sang dương lịch
  4.        sText &= "- Ngày âm lịch: " & sDate.Day & "/" & sDate.Month & " năm " & .sYearCanChi & vbNewLine
  5.        dSolar = ln.Lunar2Solar(sDate.Day, sDate.Month, sDate.Year, .dLeap, 7) ' tham số dLunarLeap bây giờ sẽ được truyền là .dLeap
  6.        sText &= "- Ngày dương lịch: " & dSolar.ToString & vbNewLine & vbNewLine
  7.        sText &= "====================================" & vbNewLine
  8.        sText &= "Kaspersoft - Nguyễn Hữu Cần - <!-- e --><a href="mailto:canngkh@gmail.com">canngkh@gmail.com</a><!-- e --> - 2011"
  9. End With
  10.  


Ngoài ra cho em hỏi có cách nào lấy năm âm lịch theo kiểu số không ạ? Được chứ, download lại dll này để bổ sung thêm hàm ToLunarDate2 sẽ có cả năm Can Chi lẫn năm số nhé
Tập tin đính kèm
Lunar.rar
(14.91 KiB) Đã tải 470 lần
Sửa lần cuối bởi Kasper vào ngày T.Hai 30/07/2012 9:48 am với 1 lần sửa.
Lành tợ tòng, ác tợ hoa,
Nhà hòa muôn việc đều nên.

rickypham
Thành viên chính thức
Thành viên chính thức
Bài viết: 28
Ngày tham gia: T.Sáu 27/04/2012 5:54 pm
Has thanked: 21 time

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi rickypham » T.Sáu 27/07/2012 1:09 pm

Dạ cám ơn bác nhiều ạ. Em sẽ thử và có gì thì lại hỏi bác thêm.
Chân thành cảm ơn

rickypham
Thành viên chính thức
Thành viên chính thức
Bài viết: 28
Ngày tham gia: T.Sáu 27/04/2012 5:54 pm
Has thanked: 21 time

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi rickypham » CN 29/07/2012 7:57 am

Hic hôm nay mới có thời gian vào test nhưng em không biết xài cái file dll này sao cả. Bác có thể share cho em source giống như mấy phần trước được không ạ?

Hình đại diện của người dùng
Kasper
Guru
Guru
Bài viết: 1061
Ngày tham gia: T.Sáu 16/05/2008 10:54 am
Has thanked: 2 time
Been thanked: 76 time
Liên hệ:

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi Kasper » T.Hai 30/07/2012 10:02 am

DLL này có 2 chức năng chính là chuyển đổi ngày dương lịch sang âm lịch và ngược lại.

Ví dụ về chuyển đổi ngày dương lịch sang âm lịch
' txtLunar: TextBox
' dtpSolar: DateTimePicker

  1.         Dim lunar As New clsLunar
  2.         Dim dSolar As New FakeDate(dtpSolar.Value.Date)
  3.  
  4.         txtLunar.Text = String.Empty
  5.         With lunar.GetAllLunarInfo(dtpSolar.Value.Day, dtpSolar.Value.Month, dtpSolar.Value.Year, 7)
  6.             txtLunar.Text &= "- " & .sDayNameOfWeek & ", ngày " & dSolar.ToString & vbNewLine
  7.             txtLunar.Text &= "- Ngày âm lịch: " & .ToLunarDate & vbNewLine
  8.             txtLunar.Text &= "- Ngày âm lịch: " & .ToLunarDate2 & vbNewLine
  9.             txtLunar.Text &= "- Giờ: " & .sHourCanChi & " - Ngày: " & .sDayCanChi & " - Tháng: " & .sMonthCanChi & " - Năm: " & .sYearCanChi & vbNewLine
  10.             txtLunar.Text &= IIf(.dDayOfLeap = 1, "- Thuộc tháng nhuận", "- Không thuộc tháng nhuận") & vbNewLine
  11.             txtLunar.Text &= IIf(.dLeap = 0, "- Không có tháng nhuận", "- Tháng nhuận: tháng " & .dLeapMonth & " (Từ ngày: " & .fdLeap2SolarFrom.ToString & " đến ngày: " & .fdLeap2SolarTo.ToString & " Dương lịch)") & vbNewLine
  12.             txtLunar.Text &= IIf(.dMonthLenght > 29, "- " & .sVMonthName & " có " & .dMonthLenght & " ngày (tháng đủ)", "- " & .sVMonthName & " có " & .dMonthLenght & " ngày (tháng thiếu)") & vbNewLine
  13.             txtLunar.Text &= "- Thuộc tiết khí: " & .sTietKhi & vbNewLine
  14.             txtLunar.Text &= "- Ngày đầu tiết khí Dương lịch: " & .fdStartSolarDateTietKhi.ToString & vbNewLine
  15.             txtLunar.Text &= "- Ngày đầu tiết khí Âm lịch: " & .ToLunarTietKhi
  16.         End With
  17.  


Còn đây là ví dụ về chuyển đổi âm lịch sang dương lịch
' sDate là biến kiểu Date
' sText là ngày do user nhập vào
  1. sDate = Convert.ToDateTime(sText)
  2.                 Dim ln As New clsLunar
  3.                 Dim dSolar As New FakeDate(sDate)
  4.                 sText = ""
  5.                 With ln.GetAllLunarInfo(1, 6, sDate.Year, 7)
  6.                     sText &= "- Ngày âm lịch: " & sDate.Day & "/" & sDate.Month & " năm " & .sYearCanChi & vbNewLine
  7.                     dSolar = ln.Lunar2Solar(sDate.Day, sDate.Month, sDate.Year, .dLeap, 7)
  8.                     sText &= "- Ngày dương lịch: " & dSolar.ToString & vbNewLine & vbNewLine
  9.                     sText &= "====================================" & vbNewLine
  10.                     sText &= "Kaspersoft - Nguyễn Hữu Cần - <!-- e --><a href="mailto:canngkh@gmail.com">canngkh@gmail.com</a><!-- e --> - 2011"
  11.                 End With
  12.                 MessageBox.Show(sText, "Kaspersoft - Bigben Clock!")
  13.  
Lành tợ tòng, ác tợ hoa,
Nhà hòa muôn việc đều nên.

rickypham
Thành viên chính thức
Thành viên chính thức
Bài viết: 28
Ngày tham gia: T.Sáu 27/04/2012 5:54 pm
Has thanked: 21 time

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi rickypham » T.Hai 30/07/2012 1:47 pm

Nói thật là em chẳng biết sử dụng file dll này thế nào cả. Không biết bác có thể share dạng file như ban đầu đc không ạ.

Hình đại diện của người dùng
sonha_91
Thành viên chính thức
Thành viên chính thức
Bài viết: 28
Ngày tham gia: CN 25/03/2012 9:29 am
Has thanked: 14 time

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi sonha_91 » T.Tư 02/01/2013 3:34 pm

Mình cũng có 1 cái class tự làm, sau khi test thì thấy class của Kasper còn 1 vài chỗ tính bị sai sót, nhưng không quan trọng lắm, nếu chỉ quan tâm đến ngày âm ngày dương thì ok rồi

Hình đại diện của người dùng
Kasper
Guru
Guru
Bài viết: 1061
Ngày tham gia: T.Sáu 16/05/2008 10:54 am
Has thanked: 2 time
Been thanked: 76 time
Liên hệ:

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi Kasper » T.Tư 02/01/2013 4:28 pm

Mình cũng có 1 cái class tự làm, sau khi test thì thấy class của Kasper còn 1 vài chỗ tính bị sai sót, nhưng không quan trọng lắm, nếu chỉ quan tâm đến ngày âm ngày dương thì ok rồi


Cụ thể tính toán sai những chổ nào vậy bạn, mình sẽ fix lỗi để class hoàn thiện hơn. Cảm ơn bạn.
Lành tợ tòng, ác tợ hoa,
Nhà hòa muôn việc đều nên.

langacayso102
Bài viết: 2
Ngày tham gia: T.Năm 17/01/2013 5:00 am

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi langacayso102 » T.Năm 17/01/2013 5:29 am

Cảm ơn bạn Kasper rất nhiều đã cho prog Lunar này. Ngày hôm qua, vô tình đổi từ DL sang AL, thấy ngày AL có khác với Java Amlich của Ho Ngoc Duc.
Ngay DL: 25/1/1937, Lunar tính AL ra là ngày 14/12 Bính Tý, nhưng AmLich Java lại tính ra là 13/12 Bính Tý.
Nhờ bạn co the xem lại được không?
Thành thật cảm ơn.

Hình đại diện của người dùng
Kasper
Guru
Guru
Bài viết: 1061
Ngày tham gia: T.Sáu 16/05/2008 10:54 am
Has thanked: 2 time
Been thanked: 76 time
Liên hệ:

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi Kasper » T.Năm 17/01/2013 8:28 am

Mình đã xem qua và thấy có sự khác biệt giữa hai lịch là do nguyên nhân sau đây:
- Lịch của HNĐ: tháng 11 năm Bính Tý (1936) là tháng Đủ (30 ngày), trong khi đó module của mình thì xác định lại là tháng Thiếu (29 ngày) vì thế khi qua tháng 12 thì lịch mình sớm hơn 1 ngày
- Qua tháng 12 thì cũng lại có sự khác biệt khi mà lịch HNĐ tháng 12 là thiếu thì của mình lại là tháng đủ

Bù trừ lẫn nhau nên qua tháng giêng năm Đinh Sửu thì hai lịch khớp với nhau. Mình sẽ xem lại cái tháng đủ và thiếu của 2 tháng 11 và 12 năm Bính Tý rồi sẽ thông báo với bạn sau.

Chân thành cảm ơn!
Lành tợ tòng, ác tợ hoa,
Nhà hòa muôn việc đều nên.

langacayso102
Bài viết: 2
Ngày tham gia: T.Năm 17/01/2013 5:00 am

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi langacayso102 » T.Sáu 18/01/2013 5:00 am

Cám ơn bạn. Đây là một số nữa:
- Chủ nhật, ngày 19/11/1933
- Ngày âm lịch: 3/10 năm Quý Dậu - java amlich: 2/10
- Giờ: Giáp Tý - Ngày: Kỷ Sửu - Tháng: Quý Hợi - Năm: Quý Dậu
- Không thuộc tháng nhuận
- Tháng nhuận: tháng 5 (Từ ngày: 23/6/1933 đến ngày: 21/7/1933 Dương lịch)
- Tháng mười có 29 ngày (tháng thiếu)
- Thuộc tiết khí: Lập đông
- Ngày đầu tiết khí Dương lịch: 8/11/1933
- Ngày đầu tiết khí Âm lịch: 21/9 năm Quý Dậu

Hình đại diện của người dùng
sonha_91
Thành viên chính thức
Thành viên chính thức
Bài viết: 28
Ngày tham gia: CN 25/03/2012 9:29 am
Has thanked: 14 time

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi sonha_91 » T.Bảy 02/02/2013 3:14 am

Kasper đã viết:Mình đã xem qua và thấy có sự khác biệt giữa hai lịch là do nguyên nhân sau đây:
- Lịch của HNĐ: tháng 11 năm Bính Tý (1936) là tháng Đủ (30 ngày), trong khi đó module của mình thì xác định lại là tháng Thiếu (29 ngày) vì thế khi qua tháng 12 thì lịch mình sớm hơn 1 ngày
- Qua tháng 12 thì cũng lại có sự khác biệt khi mà lịch HNĐ tháng 12 là thiếu thì của mình lại là tháng đủ

Bù trừ lẫn nhau nên qua tháng giêng năm Đinh Sửu thì hai lịch khớp với nhau. Mình sẽ xem lại cái tháng đủ và thiếu của 2 tháng 11 và 12 năm Bính Tý rồi sẽ thông báo với bạn sau.

Chân thành cảm ơn!

Đúng rồi đấy, cái mình phát hiện ra chỉ là cái tính tháng đủ hay thiếu thôi bạn ạ, lúc đầu mình cứ lấy cái của bạn để kiểm tra mình làm đúng không thì kiểu gì của bạn cũng 29 ngày mà mình thì lại 30 ngày, cứ nghĩ mình làm sai sửa đi sửa lại code đoạn đó. Sau mới lấy lịch của HNĐ kiểm tra thì thấy mình làm đúng, mất time chỗ đó quá :)

DoremonA
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 441
Ngày tham gia: T.Sáu 29/07/2011 1:00 pm
Has thanked: 11 time
Been thanked: 145 time

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi DoremonA » T.Sáu 08/03/2013 4:29 pm

Share các bạn Source Code Lịch Âm Dương (VB.NET 2010) do mình làm chơi :D ( Dựa vào thuật toán của Hồ Ngọc Đức )
Với các chức năng sau:
1.Hiển thị Lịch âm dương
2.Thông tin Can Chi và Giờ hoàng đạo của mỗi ngày
3.Tính gần chính xác thời gian bắt đầu chuyển Tiết Khí
4.Tìm kiếm ngày tháng năm ( Âm hoặc dương )
5.Hiệu ứng khi xem Lịch
Khi nào rảnh mình hoàn thiện thêm các chức năng về CSDL như:
1. Add ngày sinh người thân -> Gần tới Sinh nhật ai Soft sẽ thông báo
2. Add nhắc nhở công việc cần làm khi đến thời gian đã hẹn
Do mình tự học nên Code còn non ^_^
Tập tin đính kèm
Lich_Am_Duong.rar
(207.81 KiB) Đã tải 575 lần

danvac
Thành viên chính thức
Thành viên chính thức
Bài viết: 13
Ngày tham gia: T.Sáu 28/03/2008 10:48 am
Has thanked: 1 time
Been thanked: 3 time
Liên hệ:

Re: Class chuyển đổi Dương lịch <--> Âm lịch

Gửi bàigửi bởi danvac » T.Bảy 23/03/2013 4:24 pm

cảm ơn các bạn nhé, chủ đề rất hay


Quay về “[.NET] Module, Class, UserControl, DLL”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách