Swift Academy · Ders

Calendar ve DateComponents

Takvimler arasında tarih hesaplamaları yapın.

2. ders / 413 adım

Calendar ve DateComponents, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.

Calendar ve DateComponents

Bir Calendar, Date değerini yıl, ay ve gün gibi insanların kullandığı birimlerle yorumlar. DateComponents ise bu ayrıştırılmış değerleri tutar.

Geçerli Calendar

Calendar.current, kullanıcının ayarlarını yansıtır. Ham Date anları ile adlandırılmış alanlar arasında geçiş sağlar.

import Foundation

let cal = Calendar.current
print("Calendar identifier: \(cal.identifier)")

Bileşenleri Çıkarma

dateComponents(_:from:), istenen alanları bir tarihten alarak DateComponents değerine aktarır.

import Foundation

let cal = Calendar.current
let comps = cal.dateComponents([.year, .month, .day], from: Date())
print("Year is set: \(comps.year != nil)")

Tek Bir Alanı Okuma

component(_:from:) kısayolu, tek bir alanı doğrudan Int olarak döndürür.

import Foundation

let cal = Calendar.current
let weekday = cal.component(.weekday, from: Date())
print("Weekday number between 1 and 7: \(1...7 ~= weekday)")

Bileşenlerden Date Oluşturma

Bir DateComponents değerini doldurun ve eşleşen Date değerini date(from:) ile oluşturmasını takvimden isteyin.

import Foundation

var comps = DateComponents()
comps.year = 2024
comps.month = 12
comps.day = 25
let cal = Calendar.current
if let date = cal.date(from: comps) {
    print("Built a date: \(date.timeIntervalSince1970 > 0)")
}

Date Aritmetiği

date(byAdding:to:), birim miktarını güvenli biçimde ekler; ay uzunluklarını ve artık yılları sizin için ele alır.

import Foundation

let cal = Calendar.current
let now = Date()
if let nextWeek = cal.date(byAdding: .day, value: 7, to: now) {
    print(nextWeek > now)
}

Birden Çok Birim Ekleme

Kaydırmayı açıklayan bir DateComponents değerini geçirerek aynı anda birkaç birim ekleyebilirsiniz.

import Foundation

let cal = Calendar.current
var offset = DateComponents()
offset.month = 1
offset.day = 3
if let future = cal.date(byAdding: offset, to: Date()) {
    print(future > Date())
}

Tarihler Arasındaki Farklar

İşlemi tersine çevirin: dateComponents(_:from:to:), iki tarih arasındaki geçen birimleri döndürür.

import Foundation

let cal = Calendar.current
let now = Date()
let later = now.addingTimeInterval(3 * 86400)
let diff = cal.dateComponents([.day], from: now, to: later)
print("Days apart: \(diff.day ?? -1)")

Günün Başlangıcı

startOfDay(for:), takvimdeki tarihin gece yarısını döndürür; olayları güne göre gruplamak için kullanışlıdır.

import Foundation

let cal = Calendar.current
let midnight = cal.startOfDay(for: Date())
print(midnight <= Date())

Aynı Günü Denetleme

isDate(_:inSameDayAs:), iki tarihin aynı takvim gününe denk gelip gelmediğini bildirir.

import Foundation

let cal = Calendar.current
let now = Date()
let soon = now.addingTimeInterval(60)
print(cal.isDate(now, inSameDayAs: soon))

Calendar Neden Kullanılır

Ham saniyeler ekleyerek aritmetik yapmak, DST ve ay sınırlarında yanlıştır. Gün/ay/yıl hesaplamalarında her zaman Calendar kullanın.

import Foundation

let cal = Calendar.current
// Correct: add 1 month, not 30 * 86400 seconds.
if let d = cal.date(byAdding: .month, value: 1, to: Date()) {
    print("Added a month correctly: \(d > Date())")
}

Kısa Kontrol

Bir tarihe bir ayı doğru biçimde ekleyen yöntem hangisidir?

Özet

Calendar, Date ile adlandırılmış alanlar arasında DateComponents aracılığıyla dönüşüm yapar. Alanları çıkardınız, tarihler oluşturdunuz, date(byAdding:) ile birimler eklediniz, farkları hesapladınız ve takvim aritmetiğinin ham saniye aritmetiğinden neden daha iyi olduğunu gördünüz. Sırada tarihleri görüntülemek üzere biçimlendirmek var.

Başlamak ücretsiz

Yapay zeka eğitmeniyle Swift öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
122
Dersler
409

Sıkça Sorulan Sorular

“Calendar ve DateComponents” dersi ücretsiz mi?

Evet — “Calendar ve DateComponents” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.

“Calendar ve DateComponents” dersinde ne öğreneceğim?

Takvimler arasında tarih hesaplamaları yapın. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Swift Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Calendar ve DateComponents” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Date Türü ve Zaman Aralıkları
  2. Calendar ve DateComponents
  3. Tarihleri Biçimlendirme
  4. Saat Dilimleri ve Yerel Ayarlar
← Swift Academy Sayfasına Dön