ĐỌC VUI VÀ SUY NGHĨ

Cổ vũ lòng yêu thích các trò chơi hữu ích cho sự luyện tập trí óc trong cộng đồng người Việt

CP001 – Một cách làm lịch đơn giản

 

Bài viết này không phải là một bài nghiên cứu tường tận về nguồc gốc và những sự thay đổi theo thời gian của lịch. Mục đích của bài viết là trình bày cùng độc giả, nhất là các bạn trẻ, một công thức làm lịch đơn giản. Độc giả nào có kiến thức về điện toán có thể từ đó thực hiện được những nhu liệu in lịch hay bảng kế hoạch theo ngày tháng.

Bài toán căn bản của làm lịch là làm sao tìm được một phương cách để định tên của một ngày trong tuần khi biết ngày đó trong năm. Thí dụ như ngày 15/07/2008 là ngày thứ Ba.

Lịch Julian thiết lập bởi Julius Caesar năm 46 BC và được áp dụng kể từ năm 45 BC. Mỗi năm lịch Julian có 365 ngày chia thành 12 tháng và cứ mỗi 4 năm là có 1 ngày nhuần thêm vào tháng Hai. Lịch Julian còn được xử dụng đến thế kỹ 20 nhưng phần lớn được thay thế bằng lịch Gregorian. Lịch Gregorian được cải cách từ lịch Julian do giáo hoàng Gregory XIII khởi xướng năm 1582 để tránh những sụt giảm của những ngày lễ tôn giáo. Theo lịch Gregorian, năm nhuần là năm chia chẳn cho 4, trừ trường hợp năm cũng chia chẳn cho 100, tuy nhiên, năm chia chẳn cho 400 lại là năm nhuầ. Thí dụ năm 1900 không nhuần nhưng năm 2000 lại nhuần.

Phần lớn những phương cách làm lịch đều dựa vào tính chất: nếu biết được số ngày đã trải qua từ một ngày căn bản nào đó, thí dụ ngày A, đến một ngày khác, thí dụ ngày B, và nếu biết ngày trong tuần của ngày A thì sẽ tìm được ngày trong tuần của ngày B, dựa vào những tính chất tuần 7 ngày, năm 12 tháng, tháng 28, 29, 30 hay 31 ngày. Các phương pháp này đều rất phức tạp vì phải xét đến năm nhuần và số ngày trong mỗi tháng.

Có phương pháp chọn ngày căn bản A là ngày 1 tháng Giêng năm 4713 BC. Khoảng cách từ ngày này đến ngày B gọi là số ngày Julian của B.

Có phương pháp chọn ngày căn bản là ngày có những đặc tính sau đây:
            .  ngày đầu năm của năm kế tiếp một năm nhuần
            .  ngày đó phải là ngày thứ Hai trong tuần

thí dụ như ngày 1 tháng Giêng của những năm 1917, 1945, 1973 và 2001.

Công thức làm lịch đơn giản

Hai mươi tám năm trước, hai nhà toán học trẻ Key Chang và Feng Chang đã trình bày trong tạp chí ‘Giải trí toán hoc’, tập 13, 1980-1981, trang 40-41, một công thức đơn giản có thể dùng để làm lịch như sau:

                        N  =  D + M + Y + [ 0.8 * (2 * M + 1) ] + [ Y/4 ]                  (1)

Trong công thức trên, D, M, Y lần lượt chỉ Ngày, Tháng, Năm và ký hiệu [ ] chỉ phần nguyên của biểu thức bên trong.

Điều đặc biệt ở đây là tháng M phải kể từ tháng Ba, thí dụ nếu tháng Bảy thì M = 5, và Y là 2 số sau cùng của năm, thí dụ nếu năm 1992 thì Y = 92.

Tháng Giêng và tháng Hai ứng với M = 11 và 12. Nhớ rằng nếu M = 11 hay 12 thì phải trừ Y bớt 1 năm.

Thí dụ:         Tháng Mười năm 1992           =>    M = 8      Y = 92
                         Tháng Giêng năm 1992           =>    M = 11    Y = 91
                         Tháng Hai năm 1992               =>    M = 12    Y = 91

Theo Key Chang và Feng Chang thì công thức (1) chỉ có giá trị trong khoảng thời gian từ  01/03/1900 đến 29/02/2000.

Bằng thực nghiệm, tác giả thấy rằng công thức (1) vẫn còn đúng sau năm 2000 với điều kiện phải tính Y bằng hiệu số của năm với 1900 và  nếu Y > 200 thì công thức cần thêm một số điều chỉnh α  và viết lại như sau:

            N  =  D + M + Y + [ 0.8 * (2 * M + 1) ] + [ Y/4 ]  –  α                       (2)

với  Y =  Năm – 1900 và số điều chỉnh α có trị số như sau:

                           Y  <  200         α  =  0
            200  <  Y  <  300         α  =  1
            300  <  Y  <  400         α  =  2
            400  <  Y  <  500         α  =  3

            …..

Thí dụ:      Tháng Chín năm 2008     =>   M = 7      Y = 2008 – 1900 = 108 ;  α = 0
                       Tháng Giêng năm 2008  =>   M = 11    Y = 2008 – 1900 – 1 = 107
                       Tháng Hai năm 2008       =>   M = 12    Y = 2008 – 1900 – 1 = 107
                       Tháng Năm năm 2105    =>   M = 3       Y = 2105 – 1900 = 205 ;  α = 1          

Chia N cho 7. Số thừa cho biết ngày trong tuần theo qui ước sau đây:

            0  –  Chủ nhật        1  –  Thứ Hai       2  –  Thứ Ba         3  –  Thứ Tư     
            4  –  Thứ Năm       5 –  Thứ Sáu        6  –  Thứ Bảy      

Các thí dụ sau đây cho thấy sự chính xác của công thức (1).

Thí dụ 1:     20/04/1940      => D = 20     M  = 2       Y = 40
                        N = 20 + 2 + 40 + [ 0.8*(2*2 + 1) ] + [ 40/4 ]
                            = 62 + [ 4 ] + [ 10 ] = 62 + 4 + 10 = 76 = (7*10) + 6
                       
 20/04/1940 là Thứ Bảy

Thí dụ 2:     22/01/1956      => D = 22     M  = 11     Y = 56 – 1 = 55
                         N = 22 + 11 + 55 + [ 0.8*(2*11 + 1) ] + [ 55/4 ]
                             = 88 + [ 18.4] + [ 13.75 ] = 88 + 18 + 13 = 119 = (7*17) + 0
                       
22/01/1956 là Chủ nhật

Thí dụ 3:     15/07/2008      => D = 15     M  = 5       Y = 2008 – 1900 = 108
                         N = 15 + 5 + 108 + [ 0.8*(2*5 + 1) ] + [ 108/4 ]
                             = 128 + [ 8.8 ] + [ 27 ] = 128 + 8 + 27 = 163 = (7*23) + 2
                       
15/07/2008 là Thứ Ba

Thí dụ 4:    26/01/2008      => D = 26      M  = 11     Y = 2008 – 1900 – 1 = 107
                        N = 26 + 11 + 107 + [ 0.8*(2*11 + 1) ] + [ 107/4 ]
                            = 144 + [ 18.4 ] + [ 26.75 ] = 144 + 18 + 26 = 188 = (7*26) + 6
                       
26/01/2008 là Thứ Bảy

Thí dụ 5:     20/04/2009      => D = 20       M  = 2       Y = 2009 – 1900 = 109
                         N = 20 + 2 + 109 + [ 0.8*(2*2 + 1) ] + [ 109/4 ]
                             = 131 + [ 4.0 ] + [ 27.25 ] = 131 + 4 + 27 = 162 = (7*23) + 1
                       
 20/04/2009 là Thứ Hai

Thí dụ 6:     19/02/2004      => D = 19       M  = 12     Y = 2004 – 1900 – 1 = 103
                          (2004 là năm nhuần)
                         N = 19 + 12 + 103 + [ 0.8*(2*12 + 1) ] + [ 103/4 ]
                             = 134 + [ 20 ] + [ 25.75 ] = 134 + 20 + 25 = 179 = (7*25) + 4
                       
19/02/2004 là Thứ Năm

Thí dụ 7:      27/01/2000
                          (2000 là năm nhuần)
                         N = 27 + 11 + 99 + [ 0.8*(2*11 + 1) ] + [ 99/4 ]
                             = 137 + [ 18.4 ] + [ 24.75 ] = 137 + 18 + 24 = 179 = (7*25) + 4
                       
 27/01/2000 là Thứ Năm

Thí dụ 8:    20/02/2000      => D = 20      M  = 12     Y = 2000 – 1900 – 1 = 99
                        (2000 là năm nhuần)
                         N = 20 + 12 + 99 + [ 0.8*(2*12 + 1) ] + [ 99/4 ]
                             = 131 + [ 20 ] + [ 24.75 ] = 131 + 20 + 24 = 175 = (7*25) + 0
                       
 20/02/2000 là Chủ nhật

Thí dụ 9:     20/04/2135      => D = 20     M = 2       Y = 2135 – 1900 = 235 ;  α = 1
                         N = 20 + 2 + 235 + [0.8*(2*2 + 1)] + [235/4] – 1
                            = 257 + 4 + 58 – 1 = 318 = (7*45) + 3
                        20/04/2135  là Thứ Tư.


Thí dụ 10:   15/03/2230      => D = 15     M = 1       Y = 2230 – 1900 = 330 ;  α = 2
                         N = 15 + 1 + 330+ [0.8*(2*1 + 1)] + [330/4] – 2
                            = 346 + 2 + 82 – 2 = 428 = (7*61) + 1
                        15/03/2230  là Thứ Hai.

Thí dụ 11:   10/07/2345      => D = 10     M = 5       Y = 2345 – 1900 = 445 ;  α = 3
                        N = 10 + 5 + 445+ [0.8*(2*5+ 1)] + [445/4] – 3
                            = 460 + 8  + 111 – 3 = 576 = (7*82) + 2
                        10/07/2345  là Thứ Ba.

Công thức của Key Chang và Feng Chang thật đơn giản, áp dụng được cho cả năm nhuần hay không nhuần và không tùy thuộc vào số ngày trong mọi tháng. Độc giả có thể tìm nhanh chóng ngày sinh của mình trong tuần và với các bạn trẻ yêu thích điện toán, công thức đó có thể dùng để phát triển một nhu liệu làm lịch, trước là để giải trí, sau là để thực tập khả năng của mình.

 Thuận Hòa

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

 
%d bloggers like this: