کتابخانههای os و math در لوا
کار با زمان و تاریخ (os.time، os.date) و توابع کامل کتابخانه math
کتابخانه math — مرجع کامل
| تابع | کار | مثال |
|---|---|---|
math.floor / ceil | گرد کردن | floor(3.7) → 3 |
math.abs | قدر مطلق | abs(-5) → 5 |
math.sqrt | جذر | sqrt(9) → 3 |
math.max / min | بیشینه/کمینه | max(1,5,3) → 5 |
math.sin / cos | مثلثاتی (رادیان) | sin(0) → 0 |
math.log / exp | لگاریتم / نمایی | — |
math.random | عدد تصادفی | ۳ حالت دارد |
math.pi | عدد پی | 3.14159... |
math.huge | بینهایت | inf |
math.type | integer یا float | — |
کتابخانه os — زمان و تاریخ
os.time — timestamp فعلی
print(os.time()) -- تعداد ثانیهها از ۱۹۷۰/۰۱/۰۱
-- timestamp از تاریخ مشخص
local t = os.time({year = 2024, month = 6, day = 15, hour = 12})
print(t)
os.date — قالببندی تاریخ
print(os.date("%Y-%m-%d")) -- 2024-06-15
print(os.date("%H:%M:%S")) -- 12:30:45
print(os.date("*t")) -- جدول کامل زمان
الگوهای رایج os.date
| الگو | معنی |
|---|---|
%Y | سال ۴ رقمی |
%m | ماه (01-12) |
%d | روز ماه (01-31) |
%H | ساعت (00-23) |
%M | دقیقه (00-59) |
%S | ثانیه (00-59) |
%A | نام روز هفته |
محاسبه اختلاف زمان
local start = os.time()
-- شبیهسازی کار
local sum = 0
for i = 1, 1000000 do
sum = sum + i
end
local finish = os.time()
print("مدت: " .. (finish - start) .. " ثانیه")
os.clock — زمان پردازنده
local start = os.clock()
for i = 1, 1000000 do end
print(string.format("%.3f ثانیه CPU", os.clock() - start))
مثال: سن به روز
local function daysBetween(t1, t2)
return math.floor(math.abs(t2 - t1) / 86400) -- 86400 = ثانیههای یک روز
end
local birth = os.time({year = 2000, month = 1, day = 1})
local now = os.time()
print("تعداد روزها: " .. daysBetween(birth, now))
توابعی مثل
os.exit، os.execute و os.remove در ویرایشگر آنلاین (مرورگر) کار نمیکنند — اینها برای اجرای محلی هستند.این مبحث بخشی از دوره آموزش کامل لوا است.