메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

모듈:AgeCalculator: 두 판 사이의 차이

이터널리턴 이스포츠 위키
새 문서: 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


     -- 날짜를 추출 (xxxx년 xx월 xx일 형식)
     -- 입력값이 YYYYMMDD 형식인지 확인
     local year, month, day = birthDateText:match("(%d+)(%d+)(%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 birthDateText -- 날짜 형식이 맞지 않으면 그대로 반환
         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