Bàn về vấn đề năm nhuận?

  • Thread starter Thread starter Pozsi
  • Ngày gửi Ngày gửi
Liên hệ QC

Pozsi

Thành viên hoạt động
Tham gia
1/7/09
Bài viết
115
Được thích
80
Nghề nghiệp
Thất Nghiệp
Em đọc bài bên topic Đố vui về VBA!#225 và cũng cố đi tìm vài nguồn thông tin thì phát hiện ra lịch của Gregory cũng có nhắc đến vấn đề này. Vậy phải chăng Microsoft đã sai trong vấn đề năm nhuận này?
Quy luật năm nhuận

Lịch Gregory là một bộ lịch mới do Giáo Hoàng Gregory XIII đưa ra vào năm 1582. Lịch Gregory chia thành 12 tháng với 365 ngày, cứ 4 năm thì thêm một ngày vào cuối tháng 2 tạo thành năm nhuận. Vì vậy theo lịch Julius thì một năm có 365,25 ngày. Nhưng độ dài của năm mặt trời là 365,242216 ngày cho nên lịch Julius dài hơn khoảng 0,0078 ngày trong một năm, tức là khoảng 11 phút 14 giây.

Để bù vào sự khác biệt này thì cứ 400 năm ta sẽ bỏ bớt đi 3 ngày năm nhuận. Cho đến năm 1582, thì sự sai biệt đã lên đến 10 ngày. Giáo Hoàng Gregory XIII quyết định bỏ 10 ngày trong tháng 10 năm đó để cho lịch và mùa màng tương ứng trở lại. Sau ngày 4 tháng 10 năm 1582 là ngày 15 tháng 10. Và để tránh sai biệt, lịch lấy năm nhuận là năm có số thứ tự chia chẵn cho 4 (như năm 1964, 1980, 2004, ...) và các năm tận cùng bằng 00 phải chia chẵn cho 400 mới là năm nhuận (năm 2000 chia chẵn cho 4 và 400 nên là năm nhuận, những năm 1700 1800 và 1900 chia chẵn cho 4 nhưng không chia chẵn cho 400 nên không phải là năm nhuận, ...). Lịch đã sửa mang tên lịch Gregory và được áp dụng cho đến bây giờ.

Nguồn: http://vi.wikipedia.org/wiki/Lịch_Gregory
Vậy theo lịch Gregory thì năm 1900 là năm không nhuận.
Nhưng Microsoft lại cho rằng nó là nhuận nên:
=WEEKDAY(DATE(1900,2,29)) = 4 [Tức là thứ 4]
Vậy thì ta nên theo phe nào đây nhỉ?
Ai có nguồn tin gì mới về vấn đề này không?


Dương lịch

Dương lịch tức là lịch đang được chính thức dùng trên hầu hết các nước trên thế giới được tính theo sự chuyển vần biểu kiến của mặt trời. Người La Mã (Roman) lúc đầu dùng âm lịch (theo mặt trăng). Mỗi năm theo lịch La Mã cổ chỉ có 10 tháng, mỗi tháng có 29 hay 30 ngày thành ra lịch đi đường lịch, mùa màng đi đường mùa màng, không ăn khớp với nhau. Sau đó thì mỗi năm được tăng lên thành 12 tháng, nhưng thế cũng chỉ có 354 ngày trong một năm, chưa đúng với 365 ngày được. Nên sau một thời gian tuy lâu hơn trước một chút, mùa màng không còn ứng đúng với lịch nữa. Người La Mã sửa chữa các sai biệt bằng cách lâu lâu cho thêm tháng thứ 13, nhưng điều này không giải quyết được các sai biệt mà lại làm rắc rối thêm. Dưới thời Julius Caesar, ông cho sửa lại lịch và ấn định lại mỗi năm có 12 tháng và có 365 ngày. Từ đó lịch La Mã không còn theo chu kỳ của mặt trăng nữa.
Ðể cho sát với thời gian trái đất quay chung quanh mặt trời một vòng (365,242199 ngày -- theo năm thiên văn) cứ bốn năm lại có một năm nhuận (số năm chia chẵn cho 4, như 40, 1620, 1964, 1980...), trong năm đó tháng hai được thêm một ngày. Nhưng lịch Julian (theo tên của Julius Caesar) vẫn chưa hoàn hảo. Cứ 128 năm sự sai biệt lên đến một ngày.


Sửa đổi lịch

Từ đó cho đến năm 1582 theo Công nguyên, thì sự sai biệt đã lên đến 10 ngày. Giáo Hoàng Gregory XIII quyết định bỏ 10 ngày trong tháng 10 năm đó để cho lịch và mùa màng tương ứng trở lại. Sau ngày 4 tháng 10 năm 1582 là ngày 15 tháng 10. Và để tránh sai biệt, tuy vẫn giữ năm nhuận (lấy năm có số thứ tự chia chẵn cho 4 làm năm nhuận như 1964, 1980, 2004), các năm tận cùng bằng 00 (năm cuối của thế kỷ như 1600, 1700 ...) thì chỉ các năm chia chẵn cho 400 mới là năm nhuận (1600, 2000, 2400 ...). Nhờ thế mà trong 3322 năm mới có sai biệt một ngày giữa năm thiên văn và năm theo dương lịch. Lịch đã sửa mang tên lịch Gregorian và được áp dụng cho đến bây giờ. Vì sự thông tin chậm trễ và vì lý do tôn giáo, nhiều nước không áp dụng lịch Gregorian ngay sau đó. Nước Anh (và Hoa kỳ lúc còn là thuộc địa của Anh) mãi đến 1752 mới theo lịch này, và khi đó phải bỏ bớt 11 ngày trong lịch (do đó George Washington sinh ngày 11 tháng 2 năm 1731, nhưng Hoa Kỳ ăn mừng sinh nhật của ông vào ngày 22 tháng 2. Nga chỉ theo lịch này sau năm 1917, do đó mấy nước khi còn theo Cộng sản ăn mừng lễ lớn Cách mạng tháng 10 Nga vào tháng 11 dương lịch.
Âm lịch cũng trải qua nhiều thay đổi, sửa chữa. Trước hết, gọi là âm lịch để đối chiếu với dương lịch chứ thật ra âm lịch, tuy dựa trên chu kỳ tuần hoàn của mặt trăng, lại phối hợp với sự vận hành của trái đất quanh mặt trời (và của một số tinh tú trên bầu trời), thành ra tên của lịch phải là Âm dương hiệp lịch (Lunisolar calendar). Trong bài, từ đây về sau, dùng chữ âm lịch thay cho bốn chữ âm dương hiệp lịch cho tiện. Âm lịch đã được dùng ở Babylon và đến năm 1000 trước Công nguyên đã được sửa chữa cho lịch tương ứng với mùa màng. Trong việc sửa chữa, người ta có nhắc lại là phải tính sao cho định tinh Sirius (ngôi sao sáng nhất, sau Mặt trời, gấn Trái đất nhất) lúc sáng nhất phải nằm trong một tháng nào đó.
Ðến năm 747 trước Công nguyên, lịch (mang tên là lịch theo chu kỳ Metonic) được sửa thêm lần nữa. Làm lịch theo chu kỳ Metonic, cứ mỗi kỳ 19 năm thì có bảy năm nhuận, mỗi năm nhuận có thêm một tháng. Như thế mỗi năm có 365,2467463 ngày, chính xác hơn lịch Julian (sửa năm 46 trước Công nguyên) vì đến 219 năm mới sai biệt một ngày so với năm thiên văn. Hiện nay, người ta đã định là cứ 342 năm (18 kỳ 19 năm) bỏ đi một năm nhuận. Như vậy đến 336 700 năm mới có sai biệt một ngày đối với năm thiên văn.
Người Do thái cũng dùng lịch Metonic và giữ gần nguyên tên các tháng trong lịch (như Nisan cho tháng Nisannu) nhưng chỉ dùng kỳ 19 năm cho bảy năm nhuận.
Nguồn: http://vietsciences.free.fr/timhieu/khoahoc/quadiacau/amlichduonglichnamnhuan2.htm
 
Lần chỉnh sửa cuối:
Vậy phải chăng Microsoft đã sai trong vấn đề năm nhuận này?
Vậy theo lịch Gregory thì năm 1900 là năm không nhuận.
Nhưng Microsoft lại cho rằng nó là nhuận nên:
=WEEKDAY(DATE(1900,2,29)) = 4 [Tức là thứ 4]
Vậy thì ta nên theo phe nào đây nhỉ?
Ai có nguồn tin gì mới về vấn đề này không?
Bạn yên tâm đi, MS chẳng hề sai đâu, chẳng qua sản phẩm của họ ra đời sau năm 1900 nên họ không thèm quan tâm đến vấn đề này thôi
Còn chuyện sai sót thì sản phẩm nào mà chẳng có...
Dù sao tôi vẫn tin rằng: Nếu năm nay là năm nhuận và ta đang dùng Excel version mới nhất thì tin chắc việc tính toán cho năm hiện tại sẽ chẳng bao giờ sai! (sai thì ngân hàng chết hết à)
Vậy nên: Ta đang dùng Excel thì việc tính toán ngày tháng cứ bám vào Excel mà làm!
 
Vậy chẳng phải khi sai là mọi người cùng sai giống nhau sao? Không ổn tý nào cả!
 
Vậy chẳng phải khi sai là mọi người cùng sai giống nhau sao? Không ổn tý nào cả!
Tôi hoàn toàn không nghi ngờ gì về tính chính xác ở những thông tin mà bạn đã đưa ở trên!
Ở đây tôi chỉ nói rằng: TA ĐANG DÙNG EXCEL THÌ CỨ BÁM VÀO NHỮNG GÌ CÓ SẲN TRONG EXCEL MÀ LÀM ---> Với cái vụ NĂM NHUẬN, cho dù có sai sót thì tôi vẫn cho rằng nó chẳng ảnh hưởng gì đến công việc hiện tại của chúng ta cả ---> Chúng ta đâu có nhu cầu gì phải tính đến ngày tháng năm xa đến tận quá khứ thế kia chứ!
Tóm lại: Chừng nào tôi lập trình trên 1 ngôn ngữ khác, hoặc tôi có nhu cầu tính toán đến năm 1900 thì tôi sẽ tính đến việc này! ---> Còn hiện tại, Để xác định xem năm nay có là NHUẬN hay không, tôi luôn dùng công thức =DAY(DATE(x,3,0))... cứ thế mà tương... và mọi chuyện đều vẫn trong tầm kiểm soát cơ mà (đâu có gì sai sót)
 
Web KT

Bài viết mới nhất

Back
Top Bottom