CodeBlanks Logo Icon CodeBlanks

Tarih hesaplamaları

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

Tarih hesaplamaları

İ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.

Başlangıç kodu

script.js
const start = new Date('2024-01-01');
const end = new Date('2024-02-01');
// MS_PER_DAY sabitini tanımla
// farkı güne çevir ve yazdır

Örnek çözüm

script.js
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);

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

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

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

Açıklama: Önce milisaniye farkını alıp bir gündeki milisaniyeye bölersin.

2 Bir gündeki milisaniye

Soru
const MS_PER_DAY = ____;
Cevap
const MS_PER_DAY = 24 * 60 * 60 * 1000;

Açıklama: 24 saat * 60 dk * 60 sn * 1000 ms bir günü verir.

3 Hesap parçalarını eşleştir

Kavram Anlamı
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