CodeBlanks Logo Icon CodeBlanks

Tarih yardımcıları

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

Main.kt
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

Main.kt
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

Soru
fun ____.isWeekend(): Boolean {
    val day = dayOfWeek.value
    return day == 6 || day == 7
}
Cevap
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.

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