모듈:날짜/샌드박스

Module
-- 다른 모듈에서 사용하는 날짜 함수. -- I18N 및 타임존은 지원되지 않습니다.  현지의 마이너스 = '−'  -- Unicode U+2212 마이너스 기호 현지의 바닥. = math.floor  현지의 날짜., 날짜 차이, 디퓨트  --전향 선언 현지의 유니크 = { '유효 식별자' }  현지의 기능. is_date(t)  --날짜를 읽기 전용으로 하기 위해서 사용되는 시스템은, 일의가 없는 것을 의미합니다.  -- 쉽게 확인할 수 있는 메타블.  돌아가다 유형(t) == '테이블' 그리고. t.아이디 == 유니크 끝.  현지의 기능. is_diff(t)  돌아가다 유형(t) == '테이블' 그리고. getmetable(t) == 디퓨트 끝.  현지의 기능. _list_개요(목록., 세프)  돌아가다 table.concat(목록., 세프) 끝.  현지의 기능. 수집()  -- 항목을 저장할 테이블을 반환합니다.  돌아가다 {   n = 0,   더하다 = 기능. (자신, 아이템)    자신.n = 자신.n + 1    자신[자신.n] = 아이템   끝.,   합류하다 = _list_개요,  } 끝.  현지의 기능. 벗기다(본문)  -- 텍스트가 문자열인 경우 잘린 내용을 반환하고, 비어 있는 경우 0을 반환합니다.  -- 그렇지 않으면 텍스트를 반환한다(날짜 필드가 제공되는 경우 편리함)  -- 문자열, 번호 또는 다른 유형을 전달할 수 있는 다른 모듈).  한다면 유형(본문) == '문자열 그리고나서   본문 = 본문:경기('(%S.-)%s*
                
) 끝. 돌아가다 본문 끝. 현지의 기능. is_syslog_year(연도, 칼네임) -- 년도가 윤년일 경우 true를 반환합니다. 한다면 칼네임 == 줄리안 그리고나서 돌아가다 연도 % 4 == 0 끝. 돌아가다 (연도 % 4 == 0 그리고. 연도 % 100 ~= 0) 또는 연도 % 400 == 0 끝. 현지의 기능. 일수_월수(연도, , 칼네임) -- 일수(1..)를 반환합니다.31) (1..12)의 지정월. 한다면 == 2 그리고. is_syslog_year(연도, 칼네임) 그리고나서 돌아가다 29 끝. 돌아가다 ({ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 })[] 끝. 현지의 기능. h_m_s(시간을) -- 하루의 일부에서 추출된 시간, 분, 초를 반환합니다. 시간을 = 바닥.(시간을 * 24 * 3600 + 0.5) --초수 현지의 둘째 = 시간을 % 60 시간을 = 바닥.(시간을 / 60) 돌아가다 바닥.(시간을 / 60), 시간을 % 60, 둘째 끝. 현지의 기능. hms(날짜.) -- 날짜로부터 하루의 분수를 반환합니다. 여기서 (0 < = 분율 < 1) -- 값이 유효하지만 범위를 벗어나면 무엇이든 상관없습니다. 돌아가다 (날짜..한 시간 + (날짜..극히 작은 + 날짜..둘째 / 60) / 60) / 24 끝. 현지의 기능. julian_date(날짜.) -- 율리우스력 또는 그레고리력 날짜에서 jd, jdz를 반환합니다. -- jd = Julian 날짜로, 정오에는 소수 부분이 0입니다. -- jdz = 동일하지만 시간이 지정되지 않은 경우 시간은 00:00:00로 가정합니다. -- http://www.tondering.dk/claus/cal/julperiod.php#formula -- 테스트 결과, 9999년부터 9999년까지의 모든 날짜에 유효합니다. -- JDN 0은 월요일 정오(UTC)에 시작하는 24시간 기간입니다. -- 기원전 4713년 1월 1일 = (-4712, 1, 1) 율리우스력 -- 기원전 4714년 11월 24일 = (-4713, 11, 24) 그레고리력 현지의 오프셋 현지의 a = 바닥.((14 - 날짜..)/12) 현지의 y = 날짜..연도 + 4800 - a 한다면 날짜..캘린더 == 줄리안 그리고나서 오프셋 = 바닥.(y/4) - 32083 또 다른 오프셋 = 바닥.(y/4) - 바닥.(y/100) + 바닥.(y/400) - 32045 끝. 현지의 m = 날짜.. + 12*a - 3 현지의 jd = 날짜..하루 + 바닥.((153*m + 2)/5) + 365*y + 오프셋 한다면 날짜..하스타임 그리고나서 jd = jd + hms(날짜.) - 0.5 돌아가다 jd, jd 끝. 돌아가다 jd, jd - 0.5 끝. 현지의 기능. set_date_from_jd(날짜.) -- 줄리안 날짜 필드에서 테이블 날짜 필드를 설정합니다. -- 날짜가 유효한 경우 true를 반환합니다. -- http://www.tondering.dk/claus/cal/julperiod.php#formula -- 이것은 율리우스력과 그레고리력을 처리합니다. -- 부정적인 줄리안 날짜는 정의되어 있지 않지만 유효합니다. 현지의 칼네임 = 날짜..캘린더 현지의 낮다, 높은 -- 날짜 범위 - 9999-01-01 ~9999-12-31의 최소/최대 제한 한다면 칼네임 == '그레고리안' 그리고나서 낮다, 높은 = -1930999.5, 5373484.49999 그렇지 않으면 칼네임 == 줄리안 그리고나서 낮다, 높은 = -1931076.5, 5373557.49999 또 다른 돌아가다 끝. 현지의 jd = 날짜..jd 한다면 것은 아니다. (유형(jd) == '숫자' 그리고. 낮다 <=> jd 그리고. jd <=> 높은) 그리고나서 돌아가다 끝. 현지의 jdn = 바닥.(jd) 한다면 날짜..하스타임 그리고나서 현지의 시간을 = jd - jdn -- 0 < = time < 1 한다면 시간을 >= 0.5 그리고나서 -- 다음날 자정 또는 그 이후에 jdn = jdn + 1 시간을 = 시간을 - 0.5 또 다른 시간을 = 시간을 + 0.5 끝. 날짜..한 시간, 날짜..극히 작은, 날짜..둘째 = h_m_s(시간을) 또 다른 날짜..둘째 = 0 날짜..극히 작은 = 0 날짜..한 시간 = 0 끝. 현지의 b, c 한다면 칼네임 == 줄리안 그리고나서 b = 0 c = jdn + 32082 또 다른 -- 그레고리오 현지의 a = jdn + 32044 b = 바닥.((4*a + 3)/146097) c = a - 바닥.(146097*b/4) 끝. 현지의 d = 바닥.((4*c + 3)/1461) 현지의 e = c - 바닥.(1461*d/4) 현지의 m = 바닥.((5*e + 2)/153) 날짜..하루 = e - 바닥.((153*m + 2)/5) + 1 날짜.. = m + 3 - 12*바닥.(m/10) 날짜..연도 = 100*b + d - 4800 + 바닥.(m/10) 돌아가다 진실의 끝. 현지의 기능. fix_fix_displaces(숫자, y, m, d, H, M, S, 부분적인, 하스타임, 캘린더) -- 소정의 값을 정규화한 결과를 테이블 번호에 넣습니다. -- y가 유효하면 결과는 유효한 m, d 값이 됩니다.발신자는 y를 체크합니다. -- PHP mktime의 로직은 m 또는 d가 0이 될 수 있는 경우 다음을 의미합니다. --이전 단위, -1은 그 전의 단위 등. --긍정적인 가치는 계속된다. 현지의 날짜. 한다면 것은 아니다. (1 <=> m 그리고. m <=> 12) 그리고나서 날짜. = 날짜.(y, 1, 1) 한다면 것은 아니다. 날짜. 그리고나서 돌아가다 끝. 날짜. = 날짜. + ((m - 1) .. 'm') y, m = 날짜..연도, 날짜.. 끝. 현지의 일_hms 한다면 것은 아니다. 부분적인 그리고나서 한다면 하스타임 그리고. H 그리고. M 그리고. S 그리고나서 한다면 것은 아니다. (0 <=> H 그리고. H <=> 23 그리고. 0 <=> M 그리고. M <=> 59 그리고. 0 <=> S 그리고. S <=> 59) 그리고나서 일_hms = hms({ 한 시간 = H, 극히 작은 = M, 둘째 = S }) 끝. 끝. 한다면 일_hms 또는 것은 아니다. (1 <=> d 그리고. d <=> 일수_월수(y, m, 캘린더)) 그리고나서 날짜. = 날짜. 또는 날짜.(y, m, 1) 한다면 것은 아니다. 날짜. 그리고나서 돌아가다 끝. 날짜. = 날짜. + (d - 1 + (일_hms 또는 0)) y, m, d = 날짜..연도, 날짜.., 날짜..하루 한다면 일_hms 그리고나서 H, M, S = 날짜..한 시간, 날짜..극히 작은, 날짜..둘째 끝. 끝. 끝. 숫자.연도 = y 숫자. = m 숫자.하루 = d 한다면 일_hms 그리고나서 -- 유효한 H는 hastime을 설정하므로 유효한 H가 아니면 H를 설정하지 마십시오. 숫자.한 시간 = H 숫자.극히 작은 = M 숫자.둘째 = S 끝. 끝. 현지의 기능. set_date_from_from_from_module(날짜., 숫자, 옵션들) -- 숫자 값에서 테이블 날짜 필드를 설정합니다. -- 날짜가 유효한 경우 true를 반환합니다. 한다면 유형(숫자) ~= '테이블' 그리고나서 돌아가다 끝. 현지의 y = 숫자.연도 또는 날짜..연도 현지의 m = 숫자. 또는 날짜.. 현지의 d = 숫자.하루 또는 날짜..하루 현지의 H = 숫자.한 시간 현지의 M = 숫자.극히 작은 또는 날짜..극히 작은 또는 0 현지의 S = 숫자.둘째 또는 날짜..둘째 또는 0 현지의 니즈_수정 한다면 y 그리고. m 그리고. d 그리고나서 날짜..부분적인 = 제로 한다면 것은 아니다. (-9999 <=> y 그리고. y <=> 9999 그리고. 1 <=> m 그리고. m <=> 12 그리고. 1 <=> d 그리고. d <=> 일수_월수(y, m, 날짜..캘린더)) 그리고나서 한다면 것은 아니다. 날짜..want_fix 그리고나서 돌아가다 끝. 니즈_수정 = 진실의 끝. 그렇지 않으면 y 그리고. 날짜..부분적인 그리고나서 한다면 d 또는 것은 아니다. (-9999 <=> y 그리고. y <=> 9999) 그리고나서 돌아가다 끝. 한다면 m 그리고. 것은 아니다. (1 <=> m 그리고. m <=> 12) 그리고나서 한다면 것은 아니다. 날짜..want_fix 그리고나서 돌아가다 끝. 니즈_수정 = 진실의 끝. 또 다른 돌아가다 끝. 한다면 날짜..부분적인 그리고나서 H = 제로 -- 언제든지 무시합니다. M = 제로 S = 제로 또 다른 한다면 H 그리고나서 --M 또는 S는 H를 설정하지 않으면 설정할 수 없습니다. 날짜..하스타임 = 진실의 또 다른 H = 0 끝. 한다면 것은 아니다. (0 <=> H 그리고. H <=> 23 그리고. 0 <=> M 그리고. M <=> 59 그리고. 0 <=> S 그리고. S <=> 59) 그리고나서 한다면 날짜..want_fix 그리고나서 니즈_수정 = 진실의 또 다른 돌아가다 끝. 끝. 끝. 날짜..want_fix = 제로 한다면 니즈_수정 그리고나서 fix_fix_displaces(숫자, y, m, d, H, M, S, 날짜..부분적인, 날짜..하스타임, 날짜..캘린더) 돌아가다 set_date_from_from_from_module(날짜., 숫자, 옵션들) 끝. 날짜..연도 = y -- -9999 ~9999 ('n BC' → 년 = 1 - n ) 날짜.. = m -- 1 ~ 12 (부분의 경우 0일 수 있음) 날짜..하루 = d -- 1 ~ 31 (* 일부일 경우 = 0) 날짜..한 시간 = H -- 0 ~ 59 (*) 날짜..극히 작은 = M -- 0 ~ 59 (*) 날짜..둘째 = S -- 0 ~ 59 (*) 한다면 유형(옵션들) == '테이블' 그리고나서 위해서 _, k 아이페어({ '암', 시대, '형식' }) 하다 한다면 옵션들[k] 그리고나서 날짜..옵션들[k] = 옵션들[k] 끝. 끝. 끝. 돌아가다 진실의 끝. 현지의 기능. make_option_table(옵션 1, 옵션 2) -- options1이 문자열인 경우 해당 설정과 함께 테이블을 반환합니다. -- 테이블인 경우 해당 설정을 사용합니다. -- 누락된 옵션은 표 옵션 2 또는 기본값에서 설정됩니다. -- 디폴트가 사용되고 있는 경우는, 플래그가 설정되어 발신자가 의도적으로 값이 설정되어 있지 않은 것을 알 수 있습니다. -- 유효한 옵션 설정은 다음과 같습니다. -- am : am 、 am . 、 am . - 'pm', 'pm', 'pm', 'pm' (각각 위의 항목과 동일한 의미) -- 시대: 'BCMINUS', 'BC Negative', 'BC', 'BCE', 'BCE', 'AD', 'A.D', 'CE', 'C.E' -- 옵션 am = 'am'은 시간이 오전인 것이 아니라 시간에 따라 'am' 또는 'pm'이 사용됨을 의미합니다. -- am = 'pm'의 의미는 같습니다. -- 마찬가지로, era = 'BC'는 년도 <= 0일 경우 'BC'를 의미합니다. -- BCMINUS는 년도가 0 이며 표시 포맷에 %{era} 가 포함되지 않은 경우 마이너스(-)가 표시됩니다. -- BC Negative는 비슷하지만 하이픈을 표시합니다. 현지의 결과 = { 디폴트 = {} } 한다면 유형(옵션 1) == '테이블' 그리고나서 결과.am = 옵션 1.am 결과.시대 = 옵션 1.시대 그렇지 않으면 유형(옵션 1) == '문자열 그리고나서 -- 예: 'am:AM 시대:BC' 또는 'am='AM 시대=BC'입니다. 위해서 아이템 옵션 1:gmatch(%S+') 하다 현지의 lhs, rhs = 아이템:경기('^(%w+)[:=](.+)
$$SIDE_BOTTOM$$
    $$BOTTOM$$