모듈:날짜/샌드박스
Module| 모듈 샌드박스 페이지는 다음과 같습니다.날짜(diff). |
이 모듈에서는 다른 모듈에서 사용할 수 있는 날짜 함수를 제공합니다.그레고리력과 율리우스력의 날짜는 기원전 9999년부터 기원후 9999년까지 지원됩니다.달력은 예방적이어서 불규칙하지 않고 항상 적용된다고 가정합니다.
날짜는 다양한 형식으로 지정할 수 있으며, 2016년 4월 1일 또는 2016년 4월 1일 등 다양한 형식을 사용하여 표시할 수 있습니다.날짜의 속성은 율리우스력과 그레고리력 연월일뿐만 아니라 요일과 일 년을 포함합니다.
날짜를 비교할 수 있습니다(예:date1 <= date2는 덧셈 또는 뺄셈과 함께 사용할 수 있습니다(예:date + '3 months'두 날짜의 차이는 다음 방법으로 확인할 수 있습니다.date1 - date2이러한 연산은 그레고리력과 율리우스력 둘 다와 함께 작동하지만,date1 - date2두 날짜가 다른 달력을 사용하는 경우 0이 됩니다.
모듈에는 다음 항목이 있습니다.
| 내보내기 | 묘사 |
|---|---|
_current | 현재 연도, 월, 일, 시간, 분, 초가 포함된 표입니다. |
_Date | 지정된 날짜에 대한 테이블을 반환하는 함수입니다. |
_days_in_month | 월의 일수를 반환하는 함수입니다. |
다음으로 모듈 사용 예를 나타냅니다.
형식화된 출력
날짜는 텍스트 형식으로 지정할 수 있습니다.
현지의 날짜. = 요구하다('모듈:날짜')._날짜 현지의 본문 = 날짜.(2016, 7, 1):본문() -- 결과는 '2016년 7월 1일' 현지의 본문 = 날짜.(2016, 7, 1):본문(%-d %B') -- 결과는 「7월 1일」입니다. 현지의 본문 = 날짜.('2016년 7월 1일'):본문('mdy') -- 결과는 '2016년 7월 1일'입니다. 다음과 같은 간단한 포맷 코드를 사용할 수 있습니다.
| 코드 | 결과 |
|---|---|
| 흐음 | 시간: 분(지정된 경우 "am" 또는 "pm" 또는 변형(14:30 또는 2:30 pm 또는 2:30pm 또는 bariant) 포함) |
| hms | 시간: 분: 초(14:30:45) |
| ymd | 전년 동월일(2016-07-01) |
| mdy | 월, 일, 년(2016년 7월 1일) |
| dmy | 일월 연도(2016년 7월 1일) |
다음의 형식 코드(strftime과 유사)를 사용할 수 있습니다.
| 코드 | 결과 |
|---|---|
| %a | 요일 줄임말:월화... |
| %A | 요일 이름:월요일, 화요일... |
| %u | 요일 : 1~7(월~일) |
| %w | 요일 : 0 ~ 6 (일~토) |
| %d | 요일 제로 패드: 01~31~31 |
| %b | 월 약어: 1월~12월 |
| %B | 월명 : 1월부터 12월까지 |
| %m | 제로 패드의 달: 01 ~ 12 |
| %Y | 제로 패드 장착 연도: 0012, 0120, 1200 |
| %H | 24시간 제로 패딩 : 00 ~23 |
| %I | 12시간 시계 제로 패딩 : 01 ~ 12 |
| %p | AM, PM 또는 옵션과 같이 |
| %M | 분 단위 제로 패드: 00 ~59 |
| %S | 두 번째 제로 패드: 00 ~59 |
| %j | 요일 제로 패드: 001 ~ 366 |
| %-d | 요일: 1 ~31 |
| %-m | 월: 1~12 |
| %-Y | 연도: 12, 120, 1200 |
| %-H | 시간: 0 ~ 23 |
| %-M | 분: 0 ~ 59 |
| %-S | 두 번째: 0 ~59 |
| %-j | 요일: 1 ~366 |
| %-I | 시간: 1~12 |
| %% | % |
게다가.%{property}(어디서)property날짜의 모든 속성)을 사용할 수 있습니다.
예를들면,Date('1 Feb 2015 14:30:45 A.D.')에는 다음 속성이 있습니다.
| 코드 | 결과 |
|---|---|
| %{filename} | 그레고리오 |
| %{년} | 2015 |
| % { month } | 2 |
| %{일} | 1 |
| %{시간} | 14 |
| %{분} | 30 |
| %{초} | 45 |
| % { dayabbr } | 태양. |
| %{일명} | 일요일. |
| % { day of week } | 0 |
| %{filename} | 0(요일과 동일) |
| %{day of weekiso} | 7 |
| %{suiso} | 7(주간과 동일) |
| % { day of year } | 32 |
| %{era} | A.D. |
| %{gsd} | 735630(기원후 1월 1일부터의 일수.첫 번째는 1일째) |
| %{안데이트} | 2457055.1046875(줄리안 데이) |
| %{jd} | 2457055.1046875(줄리안데이트와 동일) |
| %{연간} | 거짓의 |
| % { monthdays } | 28 |
| % { monthabbr } | 2월 |
| % { monthname } | 2월 |
몇 가지 바로 가기를 사용할 수 있습니다.정해진date = Date('1 Feb 2015 14:30'), 다음과 같은 결과가 발생합니다.
| 코드 | 묘사 | 결과 예시 | 등가 형식 |
|---|---|---|---|
| 날짜: text(텍스트) %c') | 날짜와 시각 | 2015년 2월 1일 오후 2시 30분 | %-I: %M %p %-d %B %-Y %{era} |
| 날짜: text (%x') | 날짜. | 2015년 2월 1일 | %-d %B %-Y %{era} |
| 날짜: 텍스트('%X') | 시간을 | 오후 2시 30분 | %-I: %M %p |
율리우스 대추
다음은 줄리안 날짜를 날짜로 변환한 다음 날짜에 대한 정보를 얻는 예입니다.
-- 코드 -- 결과 날짜. = 요구하다('모듈:날짜')._날짜 날짜. = 날짜.('안내', 320) 번호 = 날짜..gsd -- -1721105 번호 = 날짜..jd -- 320 본문 = 날짜..데이네임 --토요일 본문 = 날짜.:본문() -- 4713년 10월 9일 BC 본문 = 날짜.:본문('%Y-%m-%d') -- 4713-10-09 본문 = 날짜.:본문('%{era} %Y-%m-%d') -- BC 4713-10-09 본문 = 날짜.:본문('%Y-%m-%d %{era}') -- 4713-10-09 BC 본문 = 날짜.:본문('%Y-%m-%d %{era}', 'era=B.C.E.') -- 4713-10-09 B.C.e. 본문 = 날짜.:본문('%Y-%m-%d', 'era=BC 네거티브') -- -4712-10-09 본문 = 날짜.:본문('%Y-%m-%d', 'era=BCM'아이너스) -- -4712-10-09(Unicode MINUS SIGN U+2212 사용) 본문 = 날짜.('안내',320):본문('%{gsd}%{jd}') -- -1721105 320 본문 = 날짜.('기원전 4713년 10월 9일'):본문('%{gsd}%{jd}') -- -1721105 320 본문 = 날짜.(-4712,10,9):본문('%{gsd}%{jd}') -- -1721105 320 날짜 차이
두 날짜의 차이는 다음 방법으로 확인할 수 있습니다.date1 - date2결과는 양력 또는 율리우스력을 사용하는 경우 모두 유효하며, 그렇지 않으면 0이 됩니다.날짜 차이로 나이와 기간을 계산할 수 있습니다.
예를 들어 다음과 같습니다.
-- 코드 -- 결과 날짜. = 요구하다('모듈:날짜')._날짜 날짜 1 = 날짜.(2015년 3월 21일) 날짜 2 = 날짜.('1999년 12월 4일') 다르다 = 날짜 1 - 날짜 2 d = 다르다.age_days -- 5586 y, m, d = 다르다.몇 해, 다르다.몇달., 다르다.날들 - 15, 3, 17(15년 + 3개월 + 17일) y, m, d = 다르다:나이('ymd') -- 15, 3, 17 y, m, w, d = 다르다:나이('ymwd') -- 15, 3, 2, 3 (15년 + 3개월 + 2주 + 3일) y, m, w, d = 다르다:지속('ymwd') -- 15, 3, 2, 4 d = 다르다:지속('d') -- 5587 (기간에는 마지막 날을 포함한다) 날짜 차이가 원래 날짜를 유지합니다. 단, 스왑된 날짜는 예외입니다.diff.date1 >= diff.date2(diff.date1더 최근 날짜입니다.)이것은 다음과 같습니다.
날짜 1 = 날짜.(2015년 3월 21일) 날짜 2 = 날짜.('1999년 12월 4일') 다르다 = 날짜 1 - 날짜 2 부정하다 = 다르다.음성 -- false(거짓말 본문 = 다르다.날짜 1:본문() -- 2015년 3월 21일 본문 = 다르다.날짜 2:본문() -- 1999년 12월 4일 다르다 = 날짜 2 - 날짜 1 부정하다 = 다르다.음성 -- true (스왑 완료) 본문 = 다르다.날짜 1:본문() -- 2015년 3월 21일 본문 = 다르다.날짜 2:본문() -- 1999년 12월 4일 날짜 차이에도 시간 차이가 있습니다.
날짜 1 = 날짜.('2016년 3월 8일 0:30:45') 날짜 2 = 날짜.('2014년 1월 19일 22:55') 다르다 = 날짜 1 - 날짜 2 y, m, d = 다르다.몇 해, 다르다.몇달., 다르다.날들 -- 2, 1, 17 H, M, S = 다르다.몇시간., 다르다.회의록, 다르다.초수 -- 1, 35, 45 날짜 차이는 날짜에 더하거나 날짜에서 뺄 수 있습니다.
날짜 1 = 날짜.('2016년 3월 8일 0:30:45') 날짜 2 = 날짜.('2014년 1월 19일 22:55') 다르다 = 날짜 1 - 날짜 2 날짜 3 = 날짜 2 + 다르다 날짜 4 = 날짜 1 - 다르다 본문 = 날짜 3:본문('ymd hms') -- 2016-03-08 00:30:45 본문 = 날짜 4:본문('ymd hms') -- 2014-01-19 22:55:00 동등. = (날짜 1 == 날짜 3) -- 참 동등. = (날짜 2 == 날짜 4) -- 참 날짜 차이의 경과 기간 및 기간 메서드는 반환해야 하는 구성 요소를 식별하는 코드를 받아들입니다.마지막 날이 포함되기 때문에 지속 시간 방법에는 추가 날이 포함됩니다.
| 코드 | 반환된 값 |
|---|---|
'ymwd' | 년, 월, 주, 일 |
'ymd' | 년, 월, 일 |
'ym' | 년, 월 |
'y' | 몇 해 |
'm' | 몇달. |
'wd' | 주, 일 |
'w' | 몇 주 |
'd' | 날들 |
-- 다른 모듈에서 사용하는 날짜 함수. -- 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*