CodeBlanks Logo Icon CodeBlanks

Tarih yardımcıları

DateTime işleme metotlarını eklersin.

formatDate metodu

Tarihleri tek biçimde göstermek için formatDate metodu yazacağız. formatDate(year, month, day), YYYY-MM-DD biçiminde bir dizge döndürür; tek haneli ay ve günler sıfırla doldurulur.

Örnek: formatDate(2024, 5, 1) → '2024-05-01'. Ay ve gün için padLeft(2, '0') kullanırız: 5.toString().padLeft(2, '0') sonucu '05''tir. padLeft, dizgeyi belirli bir uzunluğa tamamlar; eksik kalan sol karakterleri verilen karakterle doldurur. Bu sayede tarihler tek satırda biçimlenir.

Dizge birleştirme

formatDate, yıl, ay ve günü tek bir dizgede birleştirir. Dart'ta dizge birleştirme için iki yol yaygındır: + operatörü ve dizge interpolasyonu.

Örnek: '$year-$m-$d'. Burada $year, $m, $d değişkenleri doğrudan dizgeye gömülür. Tireler olduğu gibi yazılır. Bu yapı, + operatöründen daha okunaklıdır: year.toString() + '-' + m + '-' + d. İnterpolasyon, özellikle birden çok değişkenin araya sabit karakterlerin girdiği durumlarda temiz bir yazım sunar.

Uygulama Helper'a formatDate ekle

Var olan Helper sınıfını koru. Sınıfa String formatDate(int year, int month, int day) metodunu ekle. Gövdede var m = month.toString().padLeft(2, '0');, var d = day.toString().padLeft(2, '0'); ve return '$year-$m-$d'; satırlarını yaz. main içinde var h = Helper(); ile örnek oluştur ve print(h.formatDate(2024, 5, 1)) çağrısı yap.

Başlangıç kodu

main.dart
class Helper {
  final String version;
  Helper() : version = '1.0';
  String slugify(String text) {
    return text.toLowerCase().replaceAll(' ', '-');
  }
  int clamp(int value, int min, int max) {
    if (value < min) return min;
    if (value > max) return max;
    return value;
  }
}

void main() {
  var h = Helper();
  print(h.clamp(15, 0, 10));
}
// formatDate metodunu ekle ve örnekle çağır

Örnek çözüm

main.dart
class Helper {
  final String version;
  Helper() : version = '1.0';
  String slugify(String text) {
    return text.toLowerCase().replaceAll(' ', '-');
  }
  int clamp(int value, int min, int max) {
    if (value < min) return min;
    if (value > max) return max;
    return value;
  }
  String formatDate(int year, int month, int day) {
    var m = month.toString().padLeft(2, '0');
    var d = day.toString().padLeft(2, '0');
    return '$year-$m-$d';
  }
}

void main() {
  var h = Helper();
  print(h.formatDate(2024, 5, 1));
}

Beklenen çıktı

2024-05-01

Soru ve cevaplar

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

1 formatDate parçalarını eşle

Kavram Anlamı
formatDate Metot adı
padLeft(2, '0') Sıfır dolgu
2024-05-01 Çıktı

2 padLeft çağrısını tamamla

Soru
    var m = month.toString().____(2, '0');
Cevap
    var m = month.toString().padLeft(2, '0');

Açıklama: padLeft(uzunluk, karakter) sol tarafı belirtilen karakterle doldurur.

3 formatDate(2024, 5, 1) ne döndürür?

  • 2024-5-1
  • 2024/05/01
  • 05-01-2024
  • 2024-05-01 Doğru cevap

Açıklama: padLeft ay ve günü sıfırla doldurur; ayraç tiredir.

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