Tarih yardımcıları
- Dart kursu
- Orta seviye
- Ders 16/116
- 6 dk
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
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
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
var m = month.toString().____(2, '0');
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.