کتابخانه‌های 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.typeinteger یا 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 در ویرایشگر آنلاین (مرورگر) کار نمی‌کنند — این‌ها برای اجرای محلی هستند.

این مبحث بخشی از دوره آموزش کامل لوا است.

ابزارهای مرتبط