Calculate several algorithms of the week

xiaoxiao2021-03-06  175

Recently, some people saw that someone asked the week algorithm, especially organized, these algorithms were searching from online, and the implementation of the algorithm was written in the project. I hope to be helpful.

One: Common formula W = [Y-1] [(Y-1) / 4] - [(Y-1) / 100] [(Y-1) / 400] D

Y Y is the number of years, D is the cumulative day of this day in this year, that is, this day is the first day this year.

2: Zeller formula

W = Y [Y / 4] [C / 4] -2C [26 (M 1) / 10] D-1

The symbols in the formula are as follows, W: Week; C: Century; Y: Year (two digits); M: Month (M is greater than or equal to 3, less than or equal to 14, in the Caile formula, 1, 2 The month should be considered as a previous year to calculate. For example, January 1, 2003 is considered to be calculated on March 1, 2002); D: Japan; [] Represents Fix, ie .

The Zeller formula greatly reduces the computational complexity compared to the general general calculation formula.

Three: Improvements to the Zeller formula

Author: Cong Feng think in terms compared to other common generic formula, Zeller (Zeller) formula greatly reduces the computational complexity. However, the general-purpose calculation formula given by the author seems to be more simple (including the operation process). The formula is now listed below: w = [Y / 4] R (Y / 7) -2R (C / 4) m ' D

The symbols in the formula are as follows, and R () represents the payment, that is, as long as the remaining number; M 'is the correction number of M, it is now given from 1 to December 1' to 12 'below: (1', 10 ') ) = 6; (2 ', 3') = 2; (4 ', 7') = 5; 5 '= 0; 6' = 3; 8 '= 1; (9', 12 ') = 4 (Note: In the formula given by the author, Y is 1 '= 5; 2' = 1). Other symbols are the same as the meaning of the Zeller formula.

Four: Kelason Calculation Formula

The name of this formula is named, haha, I hope everyone should not see it.

W = (D 2 * m 3 * (M 1) / 5 y y / 4-y / 100 y / 400) MOD 7

In the formula, D represents the number of days in the date, and m represents the number of months, y indicates the number of years.

Note: There is a place different from other formulas in the formula:

Despect in January and February as the last year of the last year of the last year, the example: If it is 2004-10, it is converted to: 2003-13-10 to enter the formula calculation.

转载请注明原文地址:https://www.9cbs.com/read-128895.html

New Post(0)