다른 명령
새 문서: local p = {} -- 생년월일로 나이 계산 function p.calculateAge(frame) local birthDateText = frame:getParent():getArgument("출생") if not birthDateText then return "출생 정보 없음" end -- 날짜를 추출 (xxxx년 xx월 xx일 형식) local year, month, day = birthDateText:match("(%d+)년 (%d+)월 (%d+)일") if not year or not month or not day then return birthDateText -- 날짜 형식이 맞지 않으면 그대로 반환... |
편집 요약 없음 |
||
4번째 줄: | 4번째 줄: | ||
function p.calculateAge(frame) | function p.calculateAge(frame) | ||
local birthDateText = frame:getParent():getArgument("출생") | local birthDateText = frame:getParent():getArgument("출생") | ||
-- 입력값이 nil일 경우 기본 메시지 반환 | |||
if not birthDateText then | if not birthDateText then | ||
return "출생 정보 없음" | return "출생 정보 없음" | ||
end | end | ||
-- | -- 입력값이 YYYYMMDD 형식인지 확인 | ||
local year, month, day = birthDateText:match("(%d | local year, month, day = birthDateText:match("^(%d%d%d%d)(%d%d)(%d%d)$") | ||
if not year or not month or not day then | if not year or not month or not day then | ||
return | return "잘못된 형식입니다. 올바른 형식: YYYYMMDD" | ||
end | end | ||
-- 숫자로 변환 | |||
year, month, day = tonumber(year), tonumber(month), tonumber(day) | year, month, day = tonumber(year), tonumber(month), tonumber(day) | ||
-- 현재 날짜 | -- 현재 날짜 가져오기 | ||
local today = os.date("*t") | local today = os.date("*t") | ||
local age = today.year - year | local age = today.year - year | ||
25번째 줄: | 28번째 줄: | ||
end | end | ||
-- 반환 형식 | -- 반환 형식: "YYYY년 MM월 DD일 (XX세)" | ||
return string.format("%d년 %02d월 %02d일 (%d세)", year, month, day, age) | return string.format("%d년 %02d월 %02d일 (%d세)", year, month, day, age) | ||
end | end | ||
return p | return p |
2024년 11월 20일 (수) 00:43 판
이 모듈에 대한 설명문서는 모듈:AgeCalculator/설명문서에서 만들 수 있습니다
local p = {}
-- 생년월일로 나이 계산
function p.calculateAge(frame)
local birthDateText = frame:getParent():getArgument("출생")
-- 입력값이 nil일 경우 기본 메시지 반환
if not birthDateText then
return "출생 정보 없음"
end
-- 입력값이 YYYYMMDD 형식인지 확인
local year, month, day = birthDateText:match("^(%d%d%d%d)(%d%d)(%d%d)$")
if not year or not month or not day then
return "잘못된 형식입니다. 올바른 형식: YYYYMMDD"
end
-- 숫자로 변환
year, month, day = tonumber(year), tonumber(month), tonumber(day)
-- 현재 날짜 가져오기
local today = os.date("*t")
local age = today.year - year
-- 생일이 지났는지 확인
if today.month < month or (today.month == month and today.day < day) then
age = age - 1
end
-- 반환 형식: "YYYY년 MM월 DD일 (XX세)"
return string.format("%d년 %02d월 %02d일 (%d세)", year, month, day, age)
end
return p