요일 결정

Determination of the day of the week

요일 결정은 다양한 알고리즘을 사용하여 수행할 수 있습니다.또한 영구 캘린더는 사용자가 계산할 필요가 없으며 기본적으로 룩업 테이블입니다.일반적인 어플리케이션은 누군가가 태어난 요일이나 특정 이벤트가 발생한 요일을 계산하는 것입니다.

개념

수치 계산에서는 요일이 평일 숫자로 표시됩니다.월요일이 주의 첫 번째 요일인 경우 ISO 8601에 따라 월요일부터 일요일까지 요일을 1부터 7까지 코드화할 수 있습니다.7로 지정된 날은 산술모듈로 7을 적용하여 0으로 계산할 수도 있다. 산술모듈로 7은 7로 나눈 후의 나머지를 7로 계산한다.따라서 숫자 7은 0, 8은 1, 9는 2, 18은 4로 처리됩니다.일요일을 1일로 계산하면 7일 후(즉, 8일)도 일요일이고, 18일은 [a]4일째와 같습니다.이는 일요일로부터 3일 후이기 때문입니다.

표준. 월요일. 화요일. 수요일 목요일. 금요일. 토요일에 하려고요. 일요일. 사용 예
ISO 8601 1 2 3 4 5 6 7 %_ISODOWI%, %@ISODOWI[]%(4DOS),[1] DAYOFWEK() (HP Prime)[2]
0 1 2 3 4 5 6
2 3 4 5 6 7 1 %nday of Week % (NetWare, DR-DOS[3]), %_DOWI %, %@DOWI []% (4DOS)[1]
1 2 3 4 5 6 0 HP 재무 계산기

요일을 계산하는 거의 모든 방법의 기본적인 접근법은 '앵커 날짜'부터 시작합니다. 즉, 알려진 쌍(예: 1800년 1월 1일 수요일)에서 시작하여 이미 알고 있는 요일과 결정하려는 요일 사이의 일수를 결정하고 산술 모듈로 7을 사용하여 새로운 요일의 숫자를 찾는 것입니다.

하나의 표준 접근법은 주어진 세기의 첫 번째 요일의 값을 찾아보고(또는 알려진 규칙을 사용하여 계산), 그 달의 조정을 찾아보고(또는 일치 방법을 사용하여 계산), 세기의 시작 이후 윤년의 수를 계산하고, 그리고 나서 그것들을 함께 더하는 것이다.세기의 미술과 월의 일수입니다.결국, 날짜의 [4]요일을 결정하기 위해 모듈로 7을 적용하는 날짜 카운트가 된다.

Lewis Carroll의 방법처럼 모든 덧셈을 먼저 한 후 7을 버리는 방법이 있는가 하면, 각 단계에서 그것들을 버리는 방법도 있습니다.어느 쪽이든 꽤 실행 가능한 방법입니다: 전자는 계산기와 컴퓨터 프로그램에 더 쉽고 후자는 암산에 더 쉽습니다.여기서 설명하는 방법 중 어느 것도 범위 체크를 수행하지 않으므로 날짜가 올바르지 않으면 잘못된 결과가 발생합니다.

대응 일수

매월 7일마다 이전과 동일한 이름이 지정됩니다.

의 날
d
00 07 14 21 28 0
01 08 15 22 29 1
02 09 16 23 30 2
03 10 17 24 31 3
04 11 18 25 4
05 12 19 26 5
06 13 20 27 6

해당 월

"해당 월"은 한 주의 같은 요일에 시작하는 역년 내의 월입니다.예를 들어, 9월 1일은 12월 1일과 같은 날이기 때문에 9월과 12월에 해당합니다(두 날짜 사이에는 정확히 13개의 7일 주가 있습니다).월은 첫 번째 날 사이의 일 수를 7로 나눌 수 있는 경우에만 해당됩니다. 즉, 첫 번째 날이 완전히 다른 주 수인 경우에만 해당됩니다.예를 들어, 평년의 2월은 28일, 7로 나눌 수 있는 숫자, 28일이 정확히 4주이기 때문에 3월에 해당합니다.윤년의 경우, 1월과 2월은 평년과 다른 달에 해당하는데, 2월 29일을 더하면 각각의 달이 하루 늦게 시작된다는 것을 의미하기 때문이다.

평년에는 1월이 10월에 해당하고 윤년에는 4월과 7월에 해당한다.평년 2월은 3월과 11월, 윤년 8월에 해당한다.3월은 항상 11월, 4월은 항상 7월, 9월은 항상 12월에 해당합니다.8월은 평년의 다른 달과 일치하지 않는다.10월은 윤년의 다른 어떤 달과도 일치하지 않는다.5월과 6월은 결코 다른 달과 일치하지 않는다.

아래 월 표에서 해당 월은 동일한 숫자를 가지며, 이는 정의에서 직접 나온 사실이다.

평년 윤년 년 내내 m
1월 10월 0
그럴지도 모른다 1
2월 8월 2
2월 11월 3월 3
4
12월 9일 5
1월 7월 4월 6

해당 연도

1년이 시작될 수 있는 날은 7일이며 윤년에 따라 2월 29일 이후의 요일이 바뀝니다.즉, 1년에 14개의 구성을 가질 수 있습니다.모든 설정은 도미니컬 문자로 참조할 수 있지만, 2월 29일에는 문자가 할당되어 있지 않기 때문에 윤년은 1월과 2월에 각각1개씩, 3월부터 12월에1개씩2개의 도미니컬 문자가 있습니다.

2021년은 금요일로 시작하는 평년인데, 이는 2010년 역년과 일치한다는 것을 의미한다.2021년의 첫 두 달은 2016년의 첫 두 달에 해당하고, 2022년은 토요일로 시작하는 평년인데, 이는 2011년 역년에 해당한다는 것을 의미합니다.2022년의 마지막 10개월은 2016년의 마지막 10개월에 해당하고, 2023년은 일요일로 시작하는 평년이며, 이는 2017년 역년에 해당한다는 것을 의미한다.2024년은 월요일로 시작하는 윤년으로 1996년 역년과 일치한다.2024년의 첫 두 달은 2018년의 첫 두 달과 일치합니다.2024년의 마지막 10개월은 2019년의 마지막 10개월에 해당합니다.

윤년은 28년에 한 번, 평년은 6년에 한 번, 11년에 두 번 반복된다.예를 들어 수요일로 시작하는 윤년의 마지막 발생은 2020년이고 다음 발생은 2048년입니다.마찬가지로 금요일에 시작하는 다음 평년은 2027년, 2038년, 2049년이 됩니다.윤년을 건너뛰지 않는 한 이 두 문장은 모두 사실이지만 2100년까지는 발생하지 않습니다.

자세한 내용은 아래 표를 참조하십시오.

의 연도
센츄리 모드 28
y
00 06 12 17 23 0
01 07 12 18 24 1
02 08 13 19 24 2
03 08 14 20 25 3
04 09 15 20 26 4
04 10 16 21 27 5
05 11 16 22 00 6

주의:

  • 검정색은 평년의 모든 달을 의미합니다.
  • 빨간색은 윤년의 첫 두 달을 의미합니다.
  • 파란색은 윤년의 마지막 10개월을 의미합니다.

해당 세기

율리우스 세기
mod 700
그레고리 세기
mod 400[b]
요일
400: 1100 1800 ... 300: 1500 1900 ... 태양.
300: 1000 1700 ...
200 0900 1600 ... 200: 1800 2200 ... 화요일
100 0800 1500 ... 수요일
700: 1400 2100 ... 100: 1700 2100 ... [c]
600: 1300 2000 ... 금요일
500: 1200 1900 ... 000: 1600 2000 ... 앉았다

"000년"은 보통 연대표로 기원전 1년(AD 1년 전)이다.천문년 숫자 0은 기원전 1년에서 서기 1년 사이에 나온다.프로레틱 율리우스력(즉, 처음부터 올바르게 운영되었더라면 좋았을 율리우스력)에서 기원전 1은 목요일에 시작됩니다.(1582년까지 고안되지 않았기 때문에 그렇게 불린) 전위적인 그레고리력에서, 기원전 1은 토요일에 시작됩니다.

요일을 계산하는 표 형식의 방법

전체 표: 율리우스력, 그레고리력

1300년 이전과 1999년 이후의 율리우스 날짜의 경우 표에서 700년의 정확한 배수가 다른 연도를 사용해야 한다.2299년 이후의 그레고리력 날짜의 경우 표에서 400년의 정확한 배수가 다른 연도를 사용해야 합니다.값 "r0" ~ "r6"은 수백 개의 값을 각각 7과 4로 나누었을 때의 나머지를 나타내며, 시리즈가 어느 방향으로 확장되는지를 나타냅니다.편의상 줄리안 값과 그레고리 값 모두 1500-1999로 표시됩니다.굵은 글씨(: 04)는 윤년을 나타냅니다.00에서 한 해가 끝나고 수백 개의 굵은 글씨로 표시된 경우 윤년이 됩니다.따라서 19는 1900년이 그레고리 윤년이 아님을 나타냅니다(, 줄리안 열에서 19는 모두 줄리안 x00년처럼 줄리안 윤년임을 나타냅니다).20은 2000이 윤년임을 나타냅니다.1월과 2월은 윤년에만 사용하십시오.

수백 년 남은 연도의 자리 D
o
W
#
줄리안
(r 7 7)
그레고리오
(r 4 4 )
r5 19 16 20 r0 00 06 17 23 28 34 45 51 56 62 73 79 8490 1월 10월 0
r4 18 15 19 r3 01 07 12 18 29 35 40 46 57 63 68 74 85 91 96 그럴지도 모른다 1
r3 17
없음
02 13 19 24 30 41 47 52 58 69 75 80 86 97 2월 8월 M 2
r2 16 18 22 r2 03 08 14 25 31 36 42 53 59 64 70 81 87 92 98 2월 마루 11월 3
r1 15
없음
09 15 20 26 37 43 48 54 65 71 76 82 93 99 W 4
r0 14 17 21 r1 04 10 21 27 32 38 49 55 60 66 77 83 88 94 9월 12월 Th(Th) 5
r6 13
없음
05 11 16 22 33 39 44 50 61 67 72 78 89 95 1월 에이프릴 F 6

요일(2000년 1월 1일 토요일) 결정

  • 요일: 1 ~31 (1)
  • 월: (6)
  • 연도: (0)
  • 그레고리력의 경우 세기 mod 4, 율리우스력의 경우 mod 7(0).
  • 1+6+0+0=7을 더합니다.7로 나누면 나머지 0이 남으므로 요일은 토요일입니다.

공식은 w = (d + m + y + c) mod 7입니다.

율리우스력 개정

수정된 율리우스력과 그레고리력의 날짜(따라서 요일)는 1923년 10월 14일부터 서기 2800년 2월 28일까지 동일하며, 긴 세월 동안 표에 포함되거나 가까운 해에 도달하기 위해 시작하기 전에 6300 또는 그 배수를 뺄 수 있습니다.

표를 사용하여 해당 연도의 요일을 검색하려면 해당 연도에서 100을 뺀 후 그 차이를 100으로 나눈 다음 결과 몫(누락분수)에 7을 곱하고 9를 곱합니다.몫(분수 제외)을 적어 둡니다.율리우스년 표를 입력하고 마지막 나눗셈 직전에 50을 더하고 위에 언급된 지수를 빼세요.

예:8315년 1월 27일은 무슨 요일입니까?

8315-6300=2015년, 2015-100=1915년, 1915/100=19년 나머지 15년, 19×7=19년, 133/9=14년 나머지 7. 2015년은 1315년보다 700년 앞서 있으므로 1315년을 사용한다.표에서: 수백(13)의 경우: 6.나머지 자릿수(15)의 경우: 4.월(1월): 0.날짜(27)의 경우: 27. 6 + 4 + 0 + 27 + 50 - 14 = 73.73/7=10 나머지 3.요일 = 화요일.

도미니컬 레터

도미니컬 레터를 찾으려면 1월 1일 또는 10월 1일의 요일을 계산합니다.일요일인 경우 도미니컬 레터는 A, 토요일 B인 경우 마찬가지로 한 주를 거꾸로 하여 월요일(G)로 전송합니다.

윤년은 2개의 일요가 있기 때문에 1월과 2월은 1월의 요일을 계산하고 3월부터 12월은 10월의 요일을 계산합니다.

윤년은 다음 예외를 제외하고 정확히 4로 나눈 해입니다.

그레고리력 - 정확히 100으로 나눈 모든 해(정확히 400으로 나눈 해 제외).

개정 율리우스력 - 정확히 100으로 나눈 모든 해(나머지 200 또는 600을 900으로 나눈 해 제외).

최후의 날

이것은 레크리에이션 수학의 예술품이다.자세한 것은, 「Doomsay 규칙을 참조하십시오.

결과 확인

이 표를 사용하여 계산 없이 요일을 찾을 수 있습니다.

색인
A
화요일
B
수요일
C

D
금요일
E
앉았다
F
태양.
G
영구 그레고리력과 율리우스력
윤년1월 및 2월 사용
세기 행의 편지에 대한 연도 행의 날짜 문자

C일은 모두 최후의 날입니다.

줄리안
세기.
그레고리오
세기.
날짜. 01
08
15
22
29
02
09
16
23
30
03
10
17
24
31
04
11
18
25

05
12
19
26

06
13
20
27

07
14
21
28

12 19 16 20 에이프릴 1월 G A B C D E F 01 07 12 18 29 35 40 46 57 63 68 74 85 91 96
13 20 9월 12월 F G A B C D E 02 13 19 24 30 41 47 52 58 69 75 80 86 97
14 21 17 21 E F G A B C D 03 08 14 25 31 36 42 53 59 64 70 81 87 92 98
15 22 2월 마루 11월 D E F G A B C 09 15 20 26 37 43 48 54 65 71 76 82 93 99
16 23 18 22 8월 2월 C D E F G A B 04 10 21 27 32 38 49 55 60 66 77 83 88 94
17 24 그럴지도 모른다 B C D E F G A 05 11 16 22 33 39 44 50 61 67 72 78 89 95
18 25 19 23 1월 10월 A B C D E F G 06 17 23 28 34 45 51 56 62 73 79 84 90 00.
[년/100년] 그레고리오
세기.
20
16
21
17
22
18
23
19
연도 mod 100
줄리안
세기.
19
12
20
13
21
14
22
15
23
16
24
17
25
18

예:

  • 일반적인 방법
1893년 12월 26일 (GD)

12월은 F행, 26은 E열에 있으므로 날짜의 문자는 F행, 93열(년 mod 100)은 D행, C열(양력 세기 열에서는 [년/100])은 G열, C열(세기 행)은 G열, C열(세기 행)은 G열입니다.week는 화요일입니다.

1307년 10월 13일 (JD)

10월 13일은 F데이입니다.연도 행(07)의 문자 F는 G에 있습니다.세기의 행(13)과 G열의 글자는 E이므로 요일은 금요일입니다.

2000년 1월 1일 (GD)

1월 1일은 G에 해당하고, 연도 행(00)의 G는 세기 행(20)의 F에 해당하며, F는 토요일에 해당합니다.

이 방법의 요점은 "날짜 문자(G), 문자(G)는 세기 행(20)의 문자(F)는 연도(00)에 있고,날의 문자(F)는 평일(토요일)이 된다"이다.

선데이 레터 방식

1년 중 각 요일(2월 29일 제외)에는 ABCDEFG의 반복적인 순서로 문자가 할당되어 있습니다.이 시리즈는 1월 1일에 A로 시작해서 12월 31일에 다시 A로 이어진다.일요 편지는 일 년 중 모든 일요일과 반대되는 편지이다.2월 29일에는 편지가 없기 때문에, 이것은 3월부터 12월까지의 일요편지가 1월과 2월에 비해 한 발 뒤로 물러났다는 것을 의미합니다.모든 날짜에 대한 문자는 "라틴 정사각형" 왼쪽의 월(검은색)이 포함된 행과 "라틴 정사각형" 위의 날짜가 포함된 열이 일치하는 곳에 표시됩니다.일요 편지는 세기를 포함한 열('라틴 광장' 아래)과 그 해의 마지막 두 자리 숫자가 포함된 행이 "라틴 광장" 오른쪽에 있는 곳에서 발견될 것이다.윤년의 경우, 이렇게 발견된 일요 편지는 3월부터 12월까지 적용된다.

예를 들어, 2020년 6월 16일의 평일을 찾으려면:

"20" 열은 "D"에서 "20" 행과 만나고, "6" 행은 "F"에서 "16" 열과 만난다.F는 D에서 2글자이므로 주중에는 일요일부터 2일입니다.화요일.

수학적 알고리즘

라타 다이

사소한 Rata Die 방식은 D 주의 알려진 날짜로부터 경과한 d 일수를 합산하여 작동합니다.요일은 (D + d) mod 7에 의해 지정되며, 이는 D 부호화에 사용된 모든 규칙에 준거합니다.

이 방법은 필요 이상으로 비싸고 인간의 계산에 실용적이지 않다.IBMREXX 프로그래밍 언어로 Rata Die 방법을 사용했으며, 알려진 기준일은 AD 1월 [5]1일로 월요일입니다.

예를 들어, 2009년 8월 13일은 AD 1월 1일부터 733632일입니다. 이 숫자를 7로 나누면 4가 됩니다.그러므로 목요일이 됩니다.

가우스 알고리즘

프리드리히 가우스는 천문학 [6]표 모음의 손으로 쓴 메모에서 주어진 해의 1월 1일에 대한 요일을 계산하는 방법을 설명했다.그는 그것을 출판하지 않았다.그것은 [7]1927년에 마침내 그의 수집품에 포함되었다.Rata Die에 비해 연수를 쉽게 계산할 수 있습니다.

가우스의 방법은 그레고리력에 적용할 수 있었다.그는 일요일부터 시작해서 평일 0시부터 6시까지 번호를 매겼다.그는 다음과 같은 연산을 정의했다.

입력
A년, M월, D일
산출량
1년 중.
절차.
  1. 먼저 1월 1일의 요일1 d를 결정합니다.
    • 양력 달력 달력 내용은 평일(1+5((− 1)%4)+4((− 1)%100cm+6((− 1)%400))%7{\displaystyle(1+5((A-1.)\%4)+4((A-1.)\%100cm+6((A-1.)\%400))#%7}.[6]또는, C)한\100, Y)%100, 그리고 값이(1+5((Y− 1)%4)+3(Y1−)+5(C%4)#%7{\displaystyle(1+5((Y-1)\ 있다.%4)
    • 율리우스력의 은 R+ ( -,4) + ( -) , )R ( + 5 ( A - 1 ,) + ( - )( + R ( -, 4 )+ )
  2. 이제 M과 함께 룩업 테이블을 사용하여 월 관련 오프셋 m을 결정합니다.
  3. d = (d1 + m + D) % 7반환합니다.
월 간격띄우기 테이블
몇달. 1월 2월 마루 에이프릴 그럴지도 모른다 8월 9월 10월 11월 12월
평년 0 3 3 6 1 4 6 2 5 0 3 5
윤년 4 0 2 5 0 3 6 1 4 6

위의 절차는 그레고리오의 경우에 대해 하나의 식으로 요약할 수 있습니다.

작업 예

연도 번호 2000, A - 1 = 1999, Y - 1 = 99 C = 19의 경우, 1월 1일의 평일:

1777년 4월 30일과 1855년 2월 23일의 평일은 다음과 같다.

그리고.

설명 및 주의사항

1월 1일의 요일 알고리즘은 모듈로 산술을 사용하여 증명할 수 있습니다.요점은 365 mod 7 = 1이므로 매년 진행에 1일을 더한다는 것입니다.나머지는 윤년을 위한 조정이다.세기 기반 버전은 36525 mod 7 = 6입니다.

월 오프셋 표는 윤년으로 인한 2월의 차이를 보여준다.일반적인 기술(나중에 젤러에 의해 사용됨)은 월을 3월부터 시작하여 윤일이 카운트의 끝에 오도록 하는 것입니다.또한 나중에 젤러가 나타내듯이 테이블을 산술식으로 대체할 수 있다.

이 공식은 또한 Kraitchik과 Schwerdtfeger에 [7][8]의해 요일을 계산하기 위한 그래픽 및 표 형식으로 변환되었습니다.

상이한 변화

다음 공식은 룩업테이블이 없고 달이 치환된 버전의 예입니다.공식은

어디에

  • Y는 1월 또는 2월은 마이너스 1이고 다른 달은 마이너스 1입니다.
  • y는 Y의 마지막 두 자리입니다.
  • c는 Y의 첫 번째 두 자리입니다.
  • d는 그 달의 날짜(1~31)입니다.
  • m은 이동 월(3월=1,…, 2월=12)입니다.
  • w는 요일(0=일요일, …,6=토요일)입니다.w가 음수이면 7을 더해야 합니다.
월차 오프셋 (2 . - 0. { 2.6 m - 0. )
몇달. 1월 2월 마루 에이프릴 그럴지도 모른다 7월. 8월 9월 10월 11월 12월
오프셋 0 3 2 5 0 3 5 1 4 6 2 4

젤러 알고리즘

Zeller 알고리즘에서는 월은 3월 3에서 2월 14로 번호가 매겨집니다.연도는 3월에 시작하는 것으로 가정한다.[9] 예를 들어 1995년 1월은 1994년 13번째 달로 처리된다.그레고리력의 공식은

어디에

  • Y는 1월 또는 2월은 마이너스 1이고 다른 달은 마이너스 1입니다.
  • y는 Y의 마지막 두 자리입니다.
  • cY의 첫 번째 두 자리입니다.
  • d는 그 달의 날짜(1~31)입니다.
  • m은 이동 월(3월=3,...)입니다.1월 = 13일, 2월 = 14일)
  • w는 요일(1=일시, ..0=토요일)

유일한 차이점은 젤러 알고리즘(Z)과 이질 가우스 알고리즘(G) 사이의 차이이다. 즉, Z - G = 1 = 일요일이다.

(( + + ) - ( . m