CodeBlanks Logo Icon CodeBlanks

Tarih hesaplamaları

JavaScript kursu · Orta seviye · Ders 116/134

Timestamp kullanarak iki tarih arasındaki farkı ve tarih karşılaştırmayı öğrenirsin.

Tarih hesaplamalari

İki tarihin farkını bulmak için timestamp'lerini kullanırsın. getTime milisaniye cinsinden timestamp verir.

const a = new Date('2024-01-01');
const b = new Date('2024-02-01');
const diff = b.getTime() - a.getTime();

diff milisaniye cinsinden farktır. Bunu güne çevirmek için bir gündeki milisaniye sayısına bölersin. Bu yöntem tarih karşılaştırmasının temelidir.

Güne çevirme ve karşılaştırma

Bir gün 24 * 60 * 60 * 1000 milisaniyedir. Farkı bu sayıya bölüp Math.floor ile aşağı yuvarlarsın.

const MS_PER_DAY = 24 * 60 * 60 * 1000;
const days = Math.floor(diff / MS_PER_DAY);

Math.floor ondalığı atar, böylece tam gün sayısını alırsın. İki tarihi karşılaştırmak için getTime değerlerini de kullanabilirsin; JavaScript tarihleri otomatik olarak timestamp'e çevirir.

Uygulama İki tarih arasındaki gün farkını hesapla

start ve end iki tarih. MS_PER_DAY sabitine 24 * 60 * 60 * 1000 ata, farkı getTime ile al ve Math.floor ile güne çevirip console.log ile yazdır.

Örnek çözümü göster
İki tarih çıkarılırsa milisaniye farkı verilir; getTime timestamp verir. Bir günde 24*60*60*1000 milisaniye vardır; farkı bu sayıya bölüp Math.floor ile aşağı yuvarlarsın.
Örnek çözüm:
const start = new Date('2024-01-01');
const end = new Date('2024-02-01');
const MS_PER_DAY = 24 * 60 * 60 * 1000;
const diffMs = end.getTime() - start.getTime();
const days = Math.floor(diffMs / MS_PER_DAY);
console.log(days);

Kendini test et

  1. İki tarih arasındaki farkı gün cinsinden bulmak için ilk adım ne olmalıdır?

    • Farkı milisaniye cinsinden al, sonra gün sayısına böl
    • Ay farkını doğrudan çıkar
    • getDay ile hafta gününü al
    • toISOString ile karşılaştır
    Cevabı göster

    Farkı milisaniye cinsinden al, sonra gün sayısına böl — Doğru! Önce milisaniye farkını alıp bir gündeki milisaniyeye bölersin.

  2. Bir gündeki milisaniye

    const MS_PER_DAY = ____;
    Cevabı göster
    const MS_PER_DAY = 24 * 60 * 60 * 1000;
  3. Hesap parçalarını eşleştir

    getTime()
    timestamp verir
    date1 - date2
    fark (ms)
    24*60*60*1000
    günde ms
    Math.floor()
    aşağı yuvarlar

Orta seviye bölümündeki tüm dersler