다른 명령
편집 요약 없음 |
편집 요약 없음 |
||
9번째 줄: | 9번째 줄: | ||
local birthYear, birthMonth, birthDay = birthDate:match("(%d+)%D+(%d+)%D+(%d+)") | local birthYear, birthMonth, birthDay = birthDate:match("(%d+)%D+(%d+)%D+(%d+)") | ||
if not birthYear or not birthMonth or not birthDay then | if not birthYear or not birthMonth or not birthDay then | ||
return " | return "정보 없음" -- 날짜 형식이 잘못된 경우 | ||
end | end | ||
2024년 11월 20일 (수) 21:39 판
이 모듈에 대한 설명문서는 모듈:AgeCalculator/설명문서에서 만들 수 있습니다
local p = {}
function p.calculateAge(frame)
local birthDate = frame.args[1] -- 템플릿에서 전달된 첫 번째 인수 (출생일)
if not birthDate or birthDate == "" then
return "날짜 없음" -- 출생일이 제공되지 않은 경우
end
local birthYear, birthMonth, birthDay = birthDate:match("(%d+)%D+(%d+)%D+(%d+)")
if not birthYear or not birthMonth or not birthDay then
return "정보 없음" -- 날짜 형식이 잘못된 경우
end
birthYear = tonumber(birthYear)
birthMonth = tonumber(birthMonth)
birthDay = tonumber(birthDay)
local today = os.date("*t")
local age = today.year - birthYear
-- 생일이 아직 지나지 않았으면 나이를 1 줄임
if (today.month < birthMonth) or (today.month == birthMonth and today.day < birthDay) then
age = age - 1
end
-- 한국식 날짜 포맷 변환
local formattedDate = string.format("%d년 %d월 %d일", birthYear, birthMonth, birthDay)
-- 결과 반환: "2009년 7월 1일 (15세)" 형식
return string.format("%s (%d세)", formattedDate, age)
end
return p