⏰ time - Zaman and Tarih

DateTime, Duration, Formatting, Timezone

58
function
731
lines
23 KB
Boyut

🚀 Quick Start

import time

// Şu an
let şimdi = time.şimdi()
yazdır(şimdi.yazıya())  // "2025-01-15 14:30:45"

// Unix timestamp
let timestamp = time.unix()
yazdır(timestamp.yazıya())  // 1705328445

// Formatting
let formatted = time.format(şimdi, "%Y-%m-%d %H:%M:%S")
yazdır(formatted)  // "2025-01-15 14:30:45"

// Parsing
let tarih = time.parse("2025-01-15", "%Y-%m-%d")

// Duration
let başlangıç = time.şimdi()
// ... işlemler ...
let bitiş = time.şimdi()
let süre = time.duration(başlangıç, bitiş)
yazdır("Geçen süre: " + süre.saniye().yazıya() + "s")

// Sleep
time.sleep(1000)  // 1000ms = 1 saniye

📚 Özellikler

💡 Exampleler

Benchmark Timer

import time

sınıf Stopwatch do
    let başlangıç: DateTime
    let tur_zamanları: Dizi
    
    function başlat() do
        self.başlangıç = time.şimdi()
        self.tur_zamanları = []
    end
    
    function tur() do
        self.tur_zamanları.ekle(time.şimdi())
    end
    
    function durdur() -> Duration do
        return time.duration(self.başlangıç, time.şimdi())
    end
    
    function tur_süresi(index: tamsayı) -> Duration do
        if index == 0  do
            return time.duration(self.başlangıç, self.tur_zamanları[0])
        end else do
            return time.duration(self.tur_zamanları[index-1], self.tur_zamanları[index])
        end
    end
end

let sw = Stopwatch.yeni()
sw.başlat()

// Test 1
each i in aralık(0, 1000000) for do
    let x = i * i
end
sw.tur()

// Test 2
each i in aralık(0, 500000) for do
    let x = math.sqrt(i.float())
end
sw.tur()

yazdır("Tur 1: " + sw.tur_süresi(0).milisaniye().yazıya() + "ms")
yazdır("Tur 2: " + sw.tur_süresi(1).milisaniye().yazıya() + "ms")
yazdır("Toplam: " + sw.durdur().milisaniye().yazıya() + "ms")

Task Scheduler

import time, thread

sınıf ScheduledTask do
    let function: function
    let çalışma_zamanı: DateTime
    
    function yeni(f: function, çalışma_zamanı: DateTime) do
        self.function = f
        self.çalışma_zamanı = çalışma_zamanı
    end
end

sınıf Scheduler do
    let görevler: Dizi
    
    function yeni() do
        self.görevler = []
    end
    
    function zamanla(f: function, gecikme_ms: tamsayı) do
        let çalışma_zamanı = time.add_ms(time.şimdi(), gecikme_ms)
        self.görevler.ekle(ScheduledTask.yeni(f, çalışma_zamanı))
    end
    
    function çalıştır() do
        loop do
            let şimdi = time.şimdi()
            let çalıştırılan = 0
            
            each görev in self.görevler for do
                if time.before(görev.çalışma_zamanı, şimdi)  do
                    görev.function()
                    çalıştırılan = çalıştırılan + 1
                end
            end
            
            // Çalıştırılan görevleri kaldır
            self.görevler = self.görevler.filtrele(function(g) do
                return time.after(g.çalışma_zamanı, şimdi)
            end)
            
            if self.görevler.uzunluk() == 0  do
                kır
            end
            
            time.sleep(100)  // 100ms check interval
        end
    end
end

let scheduler = Scheduler.yeni()

scheduler.zamanla(function() do
    yazdır("Görev 1 çalıştı: " + time.şimdi().yazıya())
end, 1000)

scheduler.zamanla(function() do
    yazdır("Görev 2 çalıştı: " + time.şimdi().yazıya())
end, 2000)

scheduler.çalıştır()

← All Modules