0Pricing
Lua Academy · 강의

시간 연산

시간을 더하고 비교해 보세요.

시간 연산은(는) CoddyKit의 무료 Lua Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Lua Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Lua Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

time은 그저 숫자입니다

os.time은 단순한 초의 개수를 반환하므로 date 계산은 대부분 일반적인 산술 연산입니다. 앞으로 이동하려면 초를 더하고, 과거로 돌아가려면 뺍니다.

이 lesson에서는 time을 이동하고 비교하는 방법과 두 순간 사이의 차이를 구하는 방법을 보여 줍니다.

분, 시, 일의 초 단위

더 큰 단위로 계산하려면 기본 개수를 기억하세요. 1분은 60초, 1시간은 3600초, 하루는 86400초입니다.

이 상수들을 곱하면 어떤 기간이든 초 단위로 나타낼 수 있습니다.

print("Minute:", 60)
print("Hour:", 60 * 60)
print("Day:", 24 * 60 * 60)

한 시간 후

현재부터 한 시간 뒤의 time을 구하려면 os.time()을 가져와 3600초를 더하세요.

새 숫자를 os.date에 전달하면 결과를 읽기 쉬운 텍스트로 확인할 수 있습니다.

local now = os.time()
local later = now + 3600
print(os.date("%H:%M", now))
print(os.date("%H:%M", later))

어제와 내일

하루 뒤로 이동하려면 86400초를 더하고, 하루 전으로 이동하려면 그만큼 빼세요.

이 방법을 사용하면 월의 경계를 신경 쓰지 않고 내일이나 어제의 date를 빠르게 계산할 수 있습니다.

local now = os.time()
print("Yesterday:", os.date("%Y-%m-%d", now - 86400))
print("Tomorrow: ", os.date("%Y-%m-%d", now + 86400))

특정 date 만들기

테이블로 특정 date를 만들어 고정된 date에서 산술 연산을 시작할 수 있습니다. 여기서는 2025년 새해 첫날을 만든 다음 일주일을 더합니다.

더해진 time은 올바르게 1월 8일로 넘어갑니다.

local start = os.time({year=2025, month=1, day=1})
local week = start + 7 * 86400
print(os.date("%Y-%m-%d", week))

두 time 비교하기

time은 숫자이므로 일반적인 비교 연산자를 사용할 수 있습니다. 숫자가 클수록 더 나중의 순간을 뜻합니다.

따라서 마감 시각이 지났는지 쉽게 확인할 수 있습니다.

local deadline = os.time({year=2020, month=1, day=1})
local now = os.time()
if now > deadline then
  print("Deadline has passed")
end

초 단위 차이

한 time에서 다른 time을 빼면 두 순간 사이의 차이가 초 단위로 나옵니다. Lua는 os.difftime(a, b)도 제공하며, 이 함수는 a - b를 숫자로 반환합니다.

기간을 구할 때는 이식성이 좋고 권장되는 방법인 os.difftime을 사용하세요.

local a = os.time({year=2025, month=1, day=2})
local b = os.time({year=2025, month=1, day=1})
print(os.difftime(a, b))

초를 일로 변환하기

초 단위의 원시 시간 차이는 크므로, 더 이해하기 쉬운 단위로 나누어 변환합니다. 일로 변환하려면 86400으로, 시간으로 변환하려면 3600으로 나눕니다.

정수 단위만 필요할 때는 math.floor를 사용해 소수 부분을 버립니다.

local diff = os.difftime(
  os.time({year=2025, month=1, day=11}),
  os.time({year=2025, month=1, day=1}))
print(diff / 86400, "days")

이벤트까지 남은 일수

지금까지 배운 내용을 결합해 미래 날짜까지 카운트다운해 보겠습니다. 목표 시간에서 현재 시간을 뺀 다음, 초를 정수 일수로 변환합니다.

이 패턴은 카운트다운 타이머와 알림 앱의 기반이 됩니다.

local target = os.time({year=2030, month=1, day=1})
local secs = os.difftime(target, os.time())
local days = math.floor(secs / 86400)
print("Days left:", days)

os.time으로 정규화하기

유용한 방법이 하나 있습니다. 범위를 벗어난 필드가 있는 테이블을 os.time에 전달하면 Lua가 값을 올바르게 수정합니다. 1월 32일은 2월 1일이 됩니다.

따라서 day 필드의 값을 간단히 늘려 날짜를 더할 수 있고, 달력 계산은 Lua가 처리합니다.

local t = os.time({year=2025, month=1, day=32})
print(os.date("%Y-%m-%d", t))

월을 안전하게 더하기

정규화 덕분에 month 필드의 값을 12보다 크게 설정해도 Lua가 다음 연도로 넘깁니다.

2025년 13월은 자동으로 2026년 1월이 됩니다.

local t = os.time({year=2025, month=13, day=1})
print(os.date("%Y-%m-%d", t))

빠른 확인

시간 계산에 관한 지식을 적용해 보세요.

복습

시간 값은 숫자이므로 초를 더하거나 빼서 시간을 이동할 수 있습니다. 1시간은 3600초이고 1일은 86400초입니다. >와 <를 사용해 시간을 직접 비교할 수 있습니다.

두 시간 사이의 간격에는 os.difftime를 사용한 다음, 시간이나 일 단위로 변환하려면 나눕니다. 또한 os.time이 범위를 벗어난 테이블 필드를 정규화하므로 달력 계산을 간단하게 만들 수 있다는 점을 기억하세요.

자주 묻는 질문

“시간 연산” 강의는 무료인가요?

네 — “시간 연산” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Lua Academy 강의 전체를 잠금 해제할 수 있습니다. Lua Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“시간 연산”에서 뭘 배우나요?

시간을 더하고 비교해 보세요. 브라우저에서 직접 실행하는 실습 코드로 Lua Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Lua Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Lua Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“시간 연산” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Lua Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Lua Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. os.time과 os.date
  2. 날짜 형식 지정
  3. 시간 연산
  4. 기간 측정하기
← Lua Academy(으)로 돌아가기