모듈:부활절
Module부활절 날짜와 부활절을 기준으로 하는 날짜를 계산하는 모듈입니다.
Calculate
부활절 날짜 또는 부활절과 관련된 이벤트의 날짜를 계산하는 함수입니다.
논쟁들
| 들판 | 목적 | 인수 예시 |
|---|---|---|
| 1 | 연도 | 2023또는1882 |
| 방법 | 부활절 날짜 계산 방법:
| Eastern정교회 의식에서 부활절 날짜를 계산한다. |
| 하루 | 부활절 날짜 또는 부활절 일요일 이전(음수) 또는 이후(양수)의 정수 일수와 관련된 이벤트 이름입니다.이름별로 다음 요일을 사용할 수 있습니다.
| 49또는 서로 교환할 수 있습니다.Pentecost |
| 포맷 | #time parser 함수에서 사용되는 것과 동일한 최종 출력의 날짜 형식을 설명합니다.기본 형식은 다음과 같습니다.Y-m-d특별한 가치가 있다.none최종 날짜 형식을 지정할 수 없습니다. | j xd |
예
{{#invoke:Easter Calculate {{CURRENTYEAR}}}}- 2023-04-09
{{#invoke:Easter Calculate {{CURRENTYEAR}} method=Eastern}}- 2023-04-16
{{#invoke:Easter Calculate {{CURRENTYEAR}} format=[[j xg]]}}- 4월 9일
{{#invoke:Easter Calculate {{CURRENTYEAR}} method=Eastern format=[[j xg]]}}- 4월 16일
{{#invoke:Easter Calculate {{CURRENTYEAR}} day=Ash Wednesday}}- 2023-02-22
{{#invoke:Easter Calculate {{CURRENTYEAR}} method=Eastern day=Ash Wednesday}}- 2023-03-01
{{#invoke:Easter Calculate {{CURRENTYEAR}} format=[[j xg]] (l) day=Ash Wednesday}}- 2월 22일(수)
{{#invoke:Easter Calculate {{CURRENTYEAR}} method=Eastern format=[[j xg]] (l) day=Ash Wednesday}}- 3월 1일(수)
현지의 m = {} 현지의 이스터 데이터 = { default Method(default Method) = 3, -- 부활절 유형이 지정되지 않은 경우 부활절 날짜 계산의 기본 방법 default 포맷 = "Y-m-d", -- 기본 날짜 출력 형식 포맷 없음 = "없음", -- 최종 날짜 포맷을 금지합니다. 디폴트 오프셋 = 0, -- 부활절 날짜 최소 오프셋 = -63, --9월분 최대 오프셋 = 69, - 성모 마리아 순결의 축일 -- API apiEaster = "계산", -- 퍼블릭 기능명 argEaster연도 = 1, -- 년도 인수의 인덱스 또는 이름 argEasterMethod = "실패", -- 계산법이 있는 인수 인덱스 또는 이름 argEasterOffset = "날", -- 계산된 부활절 일요일과 관련된 오프셋(일)이 있는 인수 인덱스 또는 이름 argEasterFormat = "형식", -- 날짜 출력 형식(#time style)의 인수 인덱스 또는 이름 -- 에러 에러 누락연도 = "필수 인수 'year' 누락", errorInvalid연도 = "잘못된 인수 'year': '%s'", errorInvalidOffset = "잘못된 인수 'day': '%s'", errorInvalidMethod = "잘못된 인수 'method': '%s'", errorYearOutOfRange(에러년범위외) = Easter 날짜는 326년에서 4099년 사이, year: %d년 사이입니다., errorIncorrectMethod(에러인크렉트 = "서양 또는 정교회 부활절은 1583년부터 존재하며, 연도: %d", errorUnknownMethod(에러알 수 없는 메서드) = "알 수 없는 메서드: %d", 방법들 = { [줄리안] = 1, -- 율리우스력으로 동쪽 날짜 ["동부"] = 2, -- 그레고리력으로 동쪽 날짜 ['정통'] = 2, -- 동양의 별칭 ["콥트어"] = 2, -- 동양의 별칭 ["에티오피아"] = 2, -- 동양의 별칭 ["서양"] = 3, --양력 서양 날짜 ["그레고리안"] = 3, -- 서양식 별칭 ["가톨릭"] = 3, -- 서양식 별칭 ["로마인"] = 3, -- 서양식 별칭 ['개정'] = 4, --현재로서는 서양의 디팩토 가명. ['멀티언'] = 4, -- 개정판 에일리어스 ['아스트로'] = 5, --현재로서는 서양의 디팩토 가명. }, -- 다른 제안 또는 수정된 알고리즘은 아직 지원되지 않습니다. -- - * 4 "Meletian" = "개정" : 1923년부터 일부 정교회에서 사용되는 율리우스력 개정 900년의 윤년 주기로 2400년까지의 그레고리력과 같다. -- * 5 "아스트로" : 천문학적으로 관측된 예루살렘 자오선에서 니케아 지배(알레포 1997년 제안), --때로는 그레고리오와 다르다. --* 4월의 (동등하게) 유효기간을 기준으로 6: * 61 '첫 번째' : 4월 첫째 일요일 = 4월 1~7일 일요일 -- * 67 "Pepuzite" : 4월 6일 이후 일요일 = 4월 7일 ~ 13일 일요일 -- * 68 "4월" = "두 번째" : 4월 둘째 일요일 = 4월 8일~14일 일요일 -- * 69 "고정" = "영국" : 4월 둘째 주 토요일 다음날 = 4월 9-15일 일요일 -- * 1년의 유효일수(DOY)의 범위(등가)에 근거하는 7: -- * 75 "W14" : ISO 14주차 일요일 = 095-101년 일요일 -- * 79 "15" : 연중 15번째 일요일 : 099-105 일요일 -- * 72 "W15" : ISO 15주차 일요일 = 102 ~108년 일요일 -- * "대칭성":Sym454/Sym010: 293년의 윤주기 중 14주차 일요일 -- --성서 주기에서 벗어나 그레고리력으로 일주일 중 어느 요일에나: -- -- * "세계" : 세계 달력에서 999일 일요일 -- * "긍정주의자" : 긍정력 998일 일요일 -- * "쿼토데키만주의" :니케인 이전의 현대 유대/헤브루 달력 니산 14 -- * "킨토데키만주의" :니케인 이전의 현대 유대/헤브루 달력 니산 15 상대 날짜 = { [셉츄아게시마] = -63, [세카게시마] = -56, ["뚱뚱한 목요일"] = -52, [Quinquagesima] = -49, - 에스토미히, 슈로브 선데이 ['Shrove Monday'] = -48, -- 로즈 먼데이 ["Shrove Tuesday"] = -47, ­ 카니발, 마디그라 ["Ash Wedday"] = -46, ['인보비트 선데이'] = -42, [레미니세레 선데이] = -35, [오큘리 선데이] = -28, ["출발일요일"] = -21, -- 모닝 선데이 ['홀리위크'] = -7, [팜 선데이] = -7, ['성스러운 월요일] = -6, [성스러운 화요일] = -5, ['성스러운 수요일'] = -4, ['순디 목요일'] = -3, ["좋은 금요일"] = -2, -- 십자가에 못 박힌 독자 ['성스러운 토요일'] = -1, ["더 이상"] = 0, - 부활절 일요일, 부활절 ['어스터 먼데이'] = 1, [신 머시"] = 7, [미에리코디아스 도미니] = 14, [주빌리케 선데이] = 21, ['캔테이트 선데이'] = 28, [보켐 주쿤디타티스] = 35, ['상승 목요일'] = 39, --승천 ["펜테코스트"] = 49, - 휘트슨 ['화이트 먼데이'] = 50, ['트리니 선데이'] = 56, [코르푸스 크리스티] = 60, - 그리스도의 몸과 피 ['성심'] = 68, ['마음의 상처'] = 69, }, } 현지의 기능. formatEasterError(메세지, ...) 한다면 선택한다.('#', ... ) > 0 그리고나서 메세지 = string.format(메세지, ...) 끝. 돌아가다 "<span 클래스=\"에러\">" .. 메세지 .. "</span>" 끝. 현지의 기능. 로드이스터연도(연도) 한다면 것은 아니다. 연도 그리고나서 돌아가다 거짓의, formatEasterError(이스터 데이터.에러 누락연도) 끝. 현지의 결과 = 톤수(연도) 한다면 것은 아니다. 결과 또는 math.floor(결과) ~= 결과 그리고나서 돌아가다 거짓의, formatEasterError(이스터 데이터.errorInvalid연도, 연도) 끝. 돌아가다 진실의, 결과 끝. 현지의 기능. loadEasterMethod(방법, 연도) 현지의 결과 = 이스터 데이터.default Method(default Method) 한다면 방법 그리고나서 결과 = 이스터 데이터.방법들[방법] 한다면 것은 아니다. 결과 그리고나서 돌아가다 거짓의, formatEasterError(이스터 데이터.errorInvalidMethod, 방법) 끝. 끝. 한다면 연도 < > 1583 그리고나서 결과 = 1 끝. 돌아가다 진실의, 결과 끝. 현지의 기능. loadEasterOffset(하루) 한다면 것은 아니다. 하루 그리고나서 돌아가다 진실의, "" 끝. 현지의 데이터. = 이스터 데이터.상대 날짜 현지의 오프셋 = 톤수(하루) 한다면 것은 아니다. 오프셋 그리고나서 오프셋 = 데이터.[하루] 끝. 한다면 것은 아니다. 오프셋 또는 오프셋 ~= math.floor(오프셋) 또는 오프셋 < > 이스터 데이터.최소 오프셋 또는 오프셋 > 이스터 데이터.최대 오프셋 그리고나서 돌아가다 거짓의, formatEasterError(이스터 데이터.errorInvalidOffset, 하루) 끝. 한다면 오프셋 < > -1 그리고나서 돌아가다 진실의, string.format("%d일", 오프셋) 그렇지 않으면 오프셋 == -1 그리고나서 돌아가다 진실의, "-1일" 그렇지 않으면 오프셋 == 0 그리고나서 돌아가다 진실의, "" 그렇지 않으면 오프셋 == 1 그리고나서 돌아가다 진실의, "+1일" 또 다른 -- offset > 1인 경우 돌아가다 진실의, string.format(" +%d일", 오프셋) 끝. 끝. 현지의 기능. loadEasterFormat(fmt) 한다면 fmt == 이스터 데이터.포맷 없음 그리고나서 돌아가다 진실의, 제로 그렇지 않으면 것은 아니다. fmt 그리고나서 돌아가다 진실의, 이스터 데이터.default 포맷 또 다른 돌아가다 진실의, fmt 끝. 끝. --[[ 목적: 이 함수는 부활절 일요일과 달을 반환합니다. 지정된 연도 및 방법에 대해 설명합니다. 입력: 연도 - 326 ~ 4099 사이의 임의의 연도. 방법 - 1 = 다음을 기반으로 한 원래 계산 율리우스력 2 = 원래 계산, 로 변환된 줄리안 날짜 등가 그레고리력 3 = 다음 사항을 바탕으로 한 수정된 계산 그레고리력 4 = 다음 사항을 바탕으로 한 수정된 계산 멜레타 달력 출력: 없음. RETURNS: 0, 오류 메시지 - 오류, 일요일의 월, 일, 일 주의: 코드는 DN OSP 6.4.0 송신원으로부터 변환됩니다. 코드의 루트는 다음 URL에서 찾을 수 있습니다. http://www.gmarts.org/index.php?go=415 오리지널 노트: 이 알고리즘은 산술적 해석이다. 부활절 날짜 측정법이 개발된 3단계 중 Ron Mallen 1985에 의해, 큰 개선으로 기도서에 기재되어 있는 방법 오스트레일리아 연감 1988년 출판 이 매뉴얼 또는 캔버라 라이브러리를 참조하십시오. 사용된 방법을 명확하게 이해하기 위해 왜냐하면 이 알고리즘은 의 직접 번역이기 때문입니다. 공식 테이블, 그것은 쉽게 증명될 수 있다. 100% 정답 무료입니다!코드나 코멘트를 수정하지 말아 주세요! ]] 현지의 기능. calculateEasterDate(연도, 방법) 한다면 연도 < > 326 또는 연도 > 4099 그리고나서 부활절 날짜는 326년에서 4099년까지 유효합니다. -- 방법 2는, 그 후의 6월의 날짜를 서포트할 필요가 있습니다. 돌아가다 0, formatEasterError(이스터 데이터.errorYearOutOfRange(에러년범위외), 연도) 끝. 한다면 연도 < > 1583 그리고. 방법 ~= 1 그리고나서 서양 또는 정교회 부활절은 1583년부터 유효하다. 돌아가다 0, formatEasterError(이스터 데이터.errorIncorrectMethod(에러인크렉트, 연도) 끝. 한다면 (연도 < > 1600 또는 연도 > 2400) 그리고. 방법 ~= 4 그리고나서 -- 개정판 줄리안 캘린더는 아직 실제로 지원되지 않습니다. 돌아가다 0, formatEasterError(이스터 데이터.errorYearOutOfRange(에러년범위외), 연도) 끝. -- 중간 결과 현지의 첫 번째 디지 = math.floor(연도 / 100) 현지의 잔존 19 = 연도 % 19 현지의 임시직 = 0 -- 표 A에서E까지의 결과 현지의 tA = 0 현지의 tB = 0 현지의 tc = 0 현지의 tD = 0 현지의 tE = 0 -- 부활절 일요일 현지의 d = 0 -- 줄리안: 한다면 방법 == 1 또는 방법 == 2 그리고나서 -- PFM 날짜를 계산합니다. tA = ((225 - 11 * 잔존 19) % 30) + 21 --다음 일요일을 찾습니다. tB = (tA - 19) % 7 tc = (40 - 첫 번째 디지) % 7 임시직 = 연도 % 100 tD = (임시직 + math.floor(임시직 / 4)) % 7 tE = ((20 - tB - tc - tD) % 7) + 1 d = tA + tE - 동부/정통: 한다면 방법 == 2 그리고나서 -- 줄리언을 그레고리력으로 변환합니다. 1582년 10월 5일부터 14일까지 그레고리력으로 10일을 건너뛰었다. 임시직 = 10 그레고리력으로 윤년이 되는 해는 4세기마다 1번뿐이다. -- calendar (율리우스력으로는 매 세기는 윤년) 한다면 연도 > 1600 그리고나서 임시직 = 임시직 + 첫 번째 디지 - 16 - math.floor((첫 번째 디지 - 16) / 4) 끝. d = d + 임시직 끝. -- 그레고리: 그렇지 않으면 방법 == 3 또는 방법 == 4 그리고나서 -- 파스칼 보름달(PFM) 날짜를 계산합니다. 임시직 = math.floor((첫 번째 디지 - 15) / 2) + 202 - 11 * 잔존 19 한다면 첫 번째 디지 > 26 그리고나서 임시직 = 임시직 - 1 끝. 한다면 첫 번째 디지 > 38 그리고나서 임시직 = 임시직 - 1 끝. 한다면 첫 번째 디지 == 21 또는 첫 번째 디지 == 24 또는 첫 번째 디지 == 25 또는 첫 번째 디지 == 33 또는 첫 번째 디지 == 36 또는 첫 번째 디지 == 37 그리고나서 임시직 = 임시직 - 1 끝. 임시직 = 임시직 % 30 tA = 임시직 + 21 한다면 임시직 == 29 그리고나서 tA = tA - 1 끝. 한다면 임시직 == 28 그리고. 잔존 19 > 10 그리고나서 tA = tA - 1 끝. --다음 일요일을 찾습니다. tB = (tA - 19) % 7 tc = (40 - 첫 번째 디지) % 4 한다면 tc == 3 그리고나서 tc = tc + 1 끝. 한다면 tc > 1 그리고나서 tc = tc + 1 끝. 임시직 = 연도 % 100 tD = (임시직 + math.floor(임시직 / 4)) % 7 tE = ((20 - tB - tc - tD) % 7) + 1 d = tA + tE 또 다른 -- 알 수 없는 메서드 돌아가다 0, formatEasterError(이스터 데이터.errorUnknownMethod(에러알 수 없는 메서드), 방법) 끝. --원래 계산이 그레고리력으로 변환되면, 부활절 일요일은 먼 훗날 5월이나 6월에도 있을 수 있다. 한다면 d > 92 그리고나서 돌아가다 6, d - 92 -- 6월 그렇지 않으면 d > 61 그리고나서 돌아가다 5, d - 61 -- 5월 그렇지 않으면 d > 31 그리고나서 돌아가다 4, d - 31 -- 에이프릴 또 다른 돌아가다 3, d -- 3월 끝. 끝. 현지의 기능. 부활절(args) 현지의 네 알겠습니다 현지의 연도 네 알겠습니다, 연도 = 로드이스터연도(args[이스터 데이터.argEaster연도]) 한다면 것은 아니다. 네 알겠습니다 그리고나서 돌아가다 연도 끝. 현지의 방법 네 알겠습니다, 방법 = loadEasterMethod(args[이스터 데이터.argEasterMethod], 연도) 한다면 것은 아니다. 네 알겠습니다 그리고나서 돌아가다 방법 끝. 현지의 오프셋 네 알겠습니다, 오프셋 = loadEasterOffset(args[이스터 데이터.argEasterOffset]) 한다면 것은 아니다. 네 알겠습니다 그리고나서 돌아가다 오프셋 끝. 현지의 포맷 네 알겠습니다, 포맷 = loadEasterFormat(args[이스터 데이터.argEasterFormat]) 한다면 것은 아니다. 네 알겠습니다 그리고나서 돌아가다 포맷 끝. 현지의 달, 하루 = calculateEasterDate(연도, 방법) 한다면 달 == 0 그리고나서 돌아가다 하루 끝. 현지의 결과 = string.format(%04d-%02d-%02d%s, 연도, 달, 하루, 오프셋) 한다면 포맷 그리고나서 결과 = 음.언어.get Content Language(get Content Language)():포맷 날짜(포맷, 결과) 끝. 돌아가다 결과 끝. m[이스터 데이터.apiEaster] = 기능. (틀) 돌아가다 부활절(틀.args) 끝. 돌아가다 m