Tarih yardımcıları
- Kotlin kursu
- Orta seviye
- Ders 22/116
- 6 dk
LocalDate işleme fonksiyonlarını eklersin.
LocalDate extension
Bu ders LocalDate türüne isWeekend extension'ını ekler. Bu fonksiyon, tarihin hafta sonu olup olmadığını döndürür.
Örnek: fun LocalDate.isWeekend(): Boolean { val day = dayOfWeek.value; return day == 6 || day == 7 }. LocalDate kullanmak için import java.time.LocalDate gerekir. dayOfWeek.value pazartesi 1, pazar 7 döndürür. Cumartesi 6 ve pazar 7 hafta sonudur. LocalDate.of(2024, 1, 6).isWeekend() true verir.
dayOfWeek ve hafta sonu
LocalDate'in dayOfWeek özelliği haftanın gününü verir. .value ile sayısal karşılığını alırsın: Pazartesi 1, Pazar 7.
Örnek: LocalDate.of(2024, 1, 6).dayOfWeek.value ifadesi 6 döndürür çünkü 6 Ocak 2024 Cumartesi'dir. Hafta sonu kontrolü için day == 6 || day == 7 kullanılır. Bu kalıp, hafta sonu mantığını tek bir extension fonksiyonda toplar; her çağrıda tekrar yazılmaz.
Uygulama LocalDate.isWeekend extension'ı ekle
Mevcut Helpers nesnesi, String.titleCase ve Int.squared extension'larının yanına LocalDate.isWeekend() extension'ını ekle. Önce import java.time.LocalDate satırını dosyanın başına koy. Extension gövdesi val day = dayOfWeek.value; return day == 6 || day == 7 yapsın. main içinde Helpers.greet("Ayşe"), "merhaba dünya".titleCase(), 5.squared() ve LocalDate.of(2024, 1, 6).isWeekend() çağrılarını println ile yazdır.
Başlangıç kodu
object Helpers {
fun greet(name: String): String {
return "Merhaba, $name!"
}
}
fun String.titleCase(): String {
return split(" ").joinToString(" ") { word ->
word.lowercase().replaceFirstChar { it.uppercase() }
}
}
fun Int.squared(): Int {
return this * this
}
// LocalDate içe aktarımını dosya başına ekle
// LocalDate extension: isWeekend
// Cumartesi (6) veya Pazar (7) mı?
// main'de tüm yardımcıları çağırÖrnek çözüm
import java.time.LocalDate
object Helpers {
fun greet(name: String): String {
return "Merhaba, $name!"
}
}
fun String.titleCase(): String {
return split(" ").joinToString(" ") { word ->
word.lowercase().replaceFirstChar { it.uppercase() }
}
}
fun Int.squared(): Int {
return this * this
}
fun LocalDate.isWeekend(): Boolean {
val day = dayOfWeek.value
return day == 6 || day == 7
}
fun main() {
println(Helpers.greet("Ayşe"))
println("merhaba dünya".titleCase())
println(5.squared())
println(LocalDate.of(2024, 1, 6).isWeekend())
}Beklenen çıktı
Merhaba, Ayşe! Merhaba Dünya 25 true
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 LocalDate extension tanımını tamamla
fun ____.isWeekend(): Boolean {
val day = dayOfWeek.value
return day == 6 || day == 7
}
fun LocalDate.isWeekend(): Boolean {
val day = dayOfWeek.value
return day == 6 || day == 7
}
Açıklama: LocalDate alıcı tür, isWeekend extension metodudur.
2 LocalDate extension parçalarını eşle
| Kavram | Anlamı |
|---|---|
import java.time.LocalDate |
İçe aktarım |
fun LocalDate.isWeekend() |
Alıcı ve metot |
dayOfWeek.value |
Gün sayısı |
day == 6 || day == 7 |
Hafta sonu koşulu |
3 <code>fun LocalDate.isWeekend(): Boolean</code> extension'ı ne döndürür?
- Bir String
- Bir Int
- Bir Boolean Doğru cevap
- Bir LocalDate
Açıklama: isWeekend Boolean döndürür; hafta sonu mı değil mi.