모듈:이스터/샌드박스

Module
현지의 m = {}  현지의 이스터 데이터 = {     기본 메서드 = 3,        부활절 유형이 지정되지 않은 경우 부활절 날짜 계산의 기본 방법     기본 형식 = "Y-m-d",  기본 날짜 출력 형식     형식 없음      = "스캐너덜너덜,   최종 날짜 형식 지정 방지     기본 간격띄우기 = 0,        부활절 날짜     최소 간격띄우기 = -63,      셉투아게스 섬     최대 오프셋 = 69,       성모 마리아의 순결한 마음의 축일       API     api이스터            = "계산", 공용 기능 이름     argEaster연도        = 1,           연도가 있는 인수의 인덱스 또는 이름     argEaster 메서드      = "스캐너덜너덜,    계산 방법이 있는 인수의 인덱스 또는 이름     argEaster 간격띄우기      = "일",       계산된 부활절 일요일을 기준으로 오프셋이 있는 인수의 인덱스 또는 이름     argEaster 형식      = "형식",    날짜 출력 형식(#time style)을 가진 인수의 인덱스 또는 이름       오류들     오류누락연도     = "필수 인수 '년' 누락",     errorInvalid연도     = "잘못된 인수 'year': '%s'",     오류잘못된 오프셋   = "잘못된 인수 'day': '%s'",     잘못된 메서드 오류   = "잘못된 인수 'method': '%s'",     오류 연도가 범위를 벗어남  = "동부 날짜는 326년에서 4099년 사이에 사용할 수 있습니다. 연도: %d",     오류잘못된 메서드 = "서구 또는 정교회 부활절은 1583년부터 존재합니다; 연도: %d",     오류알 수 없는 메서드   = "알 수 없는 메서드: %d",       방법들 = {         ["줄리안"]      = 1,         ["동쪽"]     = 2,         ["정통"]    = 2, 동양의 별칭         ["콥트어"]      = 2, 동양의 별칭         ["에티오피아어"]   = 2, 동양의 별칭         ["서부"]     = 3,         ["그레고리안"]   = 3, 서양의 별칭         ["로맨"]       = 3, 서양의 별칭     },     1923년부터 일부 정교회에서 사용한 멜레티아 달력/개정 율리우스력     제안된 수정된 알고리즘은 지원되지 않습니다(아직).     * 예루살렘 자오선에서 천문학적으로 관찰된 니케아 통치 (알레포 1997 제안), 그레고리안과는 다릅니다.     * 일년 중 15일 일요일 : 일년 중 099-105일 일요일     * 4월 둘째 주 토요일 이후 일요일(영국): 4월 9일~15일 일요일     * 4월 둘째 일요일 : 4월 8일~14일 일요일     * 4월 6일 이후의 일요일 (페푸자이트 종파):4월 7일~13일 일요일     * 세계 달력: 099일, 그레고리력/율리우스력으로 요일을 지정합니다.     * 양력: 098일, 그레고리력/율리우스력으로 요일 중 임의의 요일      * ISO 14주차 일요일: 099-105일 중 일요일      * ISO 15주차 일요일: 106-112일 중 일요일     * 니산 14: 일주일 중 아무 요일이나      * 니산 15: 일주일 중 아무 요일이나        상대 날짜 = {         ["Septuagesima"]             = -63,         [스가게시마]               = -56,         ["뚱뚱한 목요일"]             = -52,         [Quinquagesima]            = -49, 에스토미히, 슈로브 선데이         ["Shrove Monday]            = -48, 로즈 먼데이         ["Shrove Tuesday"]           = -47, 마디그라, 카니발         ["재의 수요일"]            = -46,         ["Laetare Sunday"]           = -21,         ["팜 선데이"]              =  -7,         ["거룩한 수요일"]           =  -4,          ["문디 목요일"]          =  -3,         ["굿 프라이데이"]              =  -2, 십자가형         ["거룩한 토요일"]            =  -1,          ["이스터"]                   =   0, 부활절 일요일, 부활         ["이스터 먼데이"]            =   1,         ["신의 자비"]             =   7,         [승천의 목요일]       =  39, 어센션         ["펜테코스트"]                =  49, 휘트슨         [트리니티 선데이]           =  56,          ["코르푸스 크리스티"]           =  60, 그리스도의 몸과 피         ["신성한 마음"]             =  68,         ["무결한 마음"]         =  69,     }, }   현지의 기능. formatEasterError(메세지, ...)     한다면 선택한다.('#', ... ) > 0 그리고나서         메세지 = string.형식(메세지, ...)     끝.     돌아가다 "<span class=\"오류\">" .. 메세지 .. "</span>" 끝.   현지의 기능. 로드 이스터연도(연도)     한다면 것은 아니다. 연도 그리고나서         돌아가다 거짓의, formatEasterError(이스터 데이터.오류누락연도)     끝.     현지의 결과 = 수에 달하여(연도)     한다면 것은 아니다. 결과 또는 수학.플로어(결과) ~= 결과 그리고나서         돌아가다 거짓의, formatEasterError(이스터 데이터.errorInvalid연도, 연도)     끝.       돌아가다 진실의, 결과 끝.   현지의 기능. loadEaster 메서드(방법, 연도)     현지의 결과 = 이스터 데이터.기본 메서드     한다면 방법 그리고나서         결과 = 이스터 데이터.방법들[방법]         한다면 것은 아니다. 결과 그리고나서             돌아가다 거짓의, formatEasterError(이스터 데이터.잘못된 메서드 오류, 방법)         끝.     끝.       한다면 연도 < 1583 그리고나서         결과 = 1     끝.       돌아가다 진실의, 결과 끝.   현지의 기능. loadEaster 간격띄우기(낮의)     한다면 것은 아니다. 낮의 그리고나서         돌아가다 진실의, ""     끝.       현지의 데이터. = 이스터 데이터.상대 날짜     현지의 상쇄하다 = 수에 달하여(낮의)     한다면 것은 아니다. 상쇄하다 그리고나서         상쇄하다 = 데이터.[낮의]     끝.     한다면 것은 아니다. 상쇄하다 또는 상쇄하다 ~= 수학.플로어(상쇄하다) 또는 상쇄하다 < 이스터 데이터.최소 간격띄우기 또는 상쇄하다 > 이스터 데이터.최대 오프셋 그리고나서         돌아가다 거짓의, formatEasterError(이스터 데이터.오류잘못된 오프셋, 낮의)     끝.       한다면 상쇄하다 < -1 그리고나서         돌아가다 진실의, string.형식(%d일", 상쇄하다)     그렇지 않으면 상쇄하다 == -1 그리고나서         돌아가다 진실의, -1일"     그렇지 않으면 상쇄하다 == 0 그리고나서         돌아가다 진실의, ""     그렇지 않으면 상쇄하다 == 1 그리고나서         돌아가다 진실의, +1일"     또 다른 오프셋이 1보다 클 경우         돌아가다 진실의, string.형식(+%d일", 상쇄하다)     끝. 끝.   현지의 기능. 부활절 형식 로드(fmt)     한다면 fmt == 이스터 데이터.형식 없음 그리고나서         돌아가다 진실의, 영의     그렇지 않으면 것은 아니다. fmt 그리고나서         돌아가다 진실의, 이스터 데이터.기본 형식     또 다른         돌아가다 진실의, fmt     끝. 끝.   --[[ 목적:이 함수는 부활절 일요일을 일월로 반환합니다. 지정된 연도 및 방법에 대해 설명합니다.   입력:연도 - 326년에서 4099년 사이의 연도. 방법 - 1 = 원래 계산은 다음을 기준으로 합니다. 율리우스력 2 = 원래 계산(사용) 로 변환된 Julian 날짜 등가 그레고리력 3 = 다음을 기준으로 계산을 수정했습니다. 그레고리력   출력:없음.   RETURN: 0, 오류 메시지 - 오류, 잘못된 인수 월, 일 - 월 및 일   주의: 이 코드는 DN OSP 6.4.0 소스에서 변환됩니다. 코드의 루트는 다음에서 찾을 수 있습니다. http://www.gmarts.org/index.php?go=415   원본 참고 사항:   이 알고리즘은 산술적 해석입니다. 개발된 3단계 부활절 데이트 방법의 1985년 론 말렌에 의해, 에 대한 대대적인 개선으로서. 공동 기도서에 기술된 방법   1988년 오스트레일리아 연감 발행 이 출판물 또는 캔버라 도서관을 참조하십시오. 사용된 방법에 대한 명확한 이해를 위해.   왜냐하면 이 알고리즘은 다음의 직접적인 번역이기 때문입니다. 공식 테이블, 그것은 쉽게 증명될 수 있습니다. 100% 정확한   무료입니다!코드나 주석을 수정하지 마십시오! ]] 현지의 기능. 부활절 날짜 계산(연도, 방법)     한다면 연도 < 326 또는 연도 > 4099 그리고나서         부활절 날짜는 326년에서 4099년 사이에 유효합니다.         방법 2는 이후 6월 날짜를 지원해야 합니다.         돌아가다 0, formatEasterError(이스터 데이터.오류 연도가 범위를 벗어남, 연도)     끝.     한다면 연도 < 1583 그리고. 방법 ~= 1 그리고나서         서양 또는 정교회 부활절은 1583년부터 유효합니다.         돌아가다 0, formatEasterError(이스터 데이터.오류잘못된 메서드, 연도)     끝.       중간 결과     현지의 퍼스트 디그 = 수학.플로어(연도 / 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   = (임시의 + 수학.플로어(임시의 / 4)) % 7         tE의   = ((20 - TB - TC - tD) % 7) + 1         d    = tA + tE의         한다면 방법 == 2 그리고나서             율리우스력을 그레고리력으로 환산함             그레고리력으로 1582년 10월 5일부터 14일까지 10일을 건너뛰었습니다.             임시의 = 10             그레고리력으로 4세기마다 1년만 윤년입니다.             달력(율리우스력에서 매 세기는 윤년)             한다면 연도 > 1600 그리고나서                 임시의 = 임시의 + 퍼스트 디그 - 16 - 수학.플로어((퍼스트 디그 - 16) / 4)             끝.             d = d + 임시의         끝.     그렇지 않으면 방법 == 3 그리고나서         PFM 날짜 계산         임시의 = 수학.플로어((퍼스트 디그 - 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   = (임시의 + 수학.플로어(임시의 / 4)) % 7         tE의   = ((20 - TB - TC - tD) % 7) + 1         d    = tA + tE의     또 다른         알 수 없는 방법         돌아가다 0, formatEasterError(이스터 데이터.오류알 수 없는 메서드, 방법)     끝.     한다면 d > 61 그리고나서         원래의 계산을 그레고리력으로 환산할 때.         달력, 부활절 일요일은 5월에 발생할 수 있습니다.         돌아가다 5, d - 61     그렇지 않으면 d > 31 그리고나서         돌아가다 4, d - 31     또 다른         돌아가다 3, d     끝. 끝.   현지의 기능. 부활절(논병아리)     현지의 네 알겠습니다     현지의 연도     네 알겠습니다, 연도 = 로드 이스터연도(논병아리[이스터 데이터.argEaster연도])     한다면 것은 아니다. 네 알겠습니다 그리고나서         돌아가다 연도     끝.       현지의 방법     네 알겠습니다, 방법 = loadEaster 메서드(논병아리[이스터 데이터.argEaster 메서드], 연도)     한다면 것은 아니다. 네 알겠습니다 그리고나서         돌아가다 방법     끝.       현지의 상쇄하다     네 알겠습니다, 상쇄하다 = loadEaster 간격띄우기(논병아리[이스터 데이터.argEaster 간격띄우기])     한다면 것은 아니다. 네 알겠습니다 그리고나서         돌아가다 상쇄하다     끝.       현지의 서식을     네 알겠습니다, 서식을 = 부활절 형식 로드(논병아리[이스터 데이터.argEaster 형식])     한다면 것은 아니다. 네 알겠습니다 그리고나서         돌아가다 서식을     끝.       현지의 , 낮의 = 부활절 날짜 계산(연도, 방법)     한다면  == 0 그리고나서         돌아가다 낮의     끝.       현지의 결과 = string.형식(%04d-%02d-%02d%s", 연도, , 낮의, 상쇄하다)     한다면 서식을 그리고나서         결과 = mw.언어.콘텐츠 언어 가져오기():formatDate(서식을, 결과)     끝.       돌아가다 결과 끝.   m[이스터 데이터.api이스터] = 기능. ()     돌아가다 부활절(.논병아리) 끝.   돌아가다 m