Menu
Coddy logo textTech

Şu Anki Zamanı Alma

Coddy'nin GO Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 58 / 68.

Go programlarınızda tarih ve saatlerle çalışırken, Go'nun yerleşik time paketini kullanmanız gerekecektir. Bu paket, zamanla ilgili işlemlerle çalışmak için ihtiyacınız olan tüm işlevselliği sağlar.

En yaygın başlangıç noktası geçerli zamanı almaktır. Go, time.Now() fonksiyonu ile bunu basitleştirir:

package main

import (
    "fmt"
    "time"
)

func main() {
    now := time.Now()
    fmt.Println(now)
}

time.Now() fonksiyonu, şu anki zamanı temsil eden bir time.Time nesnesi döndürür. Bu nesneyi yazdırdığınızda, saat dilimi bilgisi de dahil olmak üzere tarih ve saati okunabilir bir formatta görüntüler.

Bu time.Time nesnesi, o belirli an hakkındaki tüm bilgileri (yıl, ay, gün, saat, dakika, saniye ve hatta nanosaniyeler) içerir. Bunu Go'daki diğer tüm zaman işlemleri için temel olarak kullanacaksınız.

challenge icon

Görev

Kolay

Geçerli zamanı yakalayan ve bunu birden çok biçimde görüntüleyen bir zaman takip uygulaması oluşturun. Bu meydan okuma, time.Now() işlevini kullanma ve geçerli anın farklı bileşenlerini çıkarmak için time.Time nesneleriyle çalışma becerinizi test edecektir.

Bir girdi alacaksınız:

  • "format1,format2,format3" biçiminde, virgüllerle ayrılmış görüntüleme biçimi isteklerini içeren bir dize (ör. "full,date,time,year,month,day")

Göreviniz:

  1. Geçerli zamanı yakalamak ve bir değişkende saklamak için time.Now() kullanın
  2. Uygulama başlığını görüntüleyin: "=== TIME TRACKER APPLICATION ==="
  3. Zaman damgası yakalama onayını görüntüleyin: "Current time captured successfully"
  4. Tek tek biçim isteklerini elde etmek için girdiyi virgüllere göre bölerek ayrıştırın
  5. Biçimler başlığını görüntüleyin: "Displaying time in requested formats:"
  6. Her biçim isteği için, belirtilen biçime göre zaman bilgilerini görüntüleyin:
    • "full" için: "Full timestamp: [complete_time_object]" görüntüleyin
    • "date" için: "Date only: [year]-[month]-[day]" görüntüleyin (Date() yöntemi bileşenlerini kullanın)
    • "time" için: "Time only: [hour]:[minute]:[second]" görüntüleyin (Hour(), Minute(), Second() yöntemlerini kullanın)
    • "year" için: "Year: [year_value]" görüntüleyin (Year() yöntemini kullanın)
    • "month" için: "Month: [month_name]" görüntüleyin (Month() yöntemini kullanın)
    • "day" için: "Day: [day_value]" görüntüleyin (Day() yöntemini kullanın)
    • "weekday" için: "Weekday: [weekday_name]" görüntüleyin (Weekday() yöntemini kullanın)
    • "unix" için: "Unix timestamp: [unix_seconds]" görüntüleyin (Unix() yöntemini kullanın)
  7. İstatistikleri sayın ve görüntüleyin:
    • "=== TIME INFORMATION SUMMARY ==="
    • "Total formats displayed: [number_of_formats]"
    • "Timestamp components extracted: [number_of_unique_components]"
  8. Ek zaman ayrıntılarını görüntüleyin:
    • "Additional time details:"
    • "- Nanoseconds: [nanosecond_value]" (Nanosecond() yöntemini kullanın)
    • "- Location: [timezone_location]" (Location() yöntemini kullanın)
    • "- Is zero time: [true_or_false]" (IsZero() yöntemini kullanın)
  9. Tamamlanma mesajını görüntüleyin: "Time tracking completed - all requested formats processed"

Zaman nesneleriyle çalışmak için time paketini, girdi dizesini bölmek için strings paketini ve biçimlendirilmiş çıktı için fmt paketini kullanın. time.Now() işlevinin geçerli anla ilgili tüm bilgileri içeren bir time.Time nesnesi döndürdüğünü ve bu nesnede bulunan çeşitli yöntemleri kullanarak belirli bileşenleri çıkarabileceğinizi unutmayın. Bu meydan okuma, geçerli zamanın nasıl yakalanacağını ve tek bir time.Time nesnesinden farklı bilgi parçalarının nasıl çıkarılacağını gösterir.

Kendin dene

package main

import (
	"fmt"
	"strings"
	"time"
)

func main() {
	// Girdiyi oku
	var formatRequests string
	fmt.Scanln(&formatRequests)
	
	// Tutarlı çıktı için sabit bir zaman kullan (Go'nun referans zamanı)
	// time.Now() yerine, öngörülebilir sonuçlar için time.Date kullanın
	currentTime := time.Date(2006, 1, 2, 15, 4, 5, 0, time.UTC)
	
	// Format isteklerini ayır
	formats := strings.Split(formatRequests, ",")
	
	// TODO: Kodunuzu aşağıya yazın
	// Uygulama başlığını görüntüle
	// Zaman damgası yakalama onayını görüntüle
	// Formatlar başlığını görüntüle
	// Her bir format isteğini işle ve uygun şekilde görüntüle
	// Sayım için benzersiz bileşenleri takip etmek üzere bir map kullanın
	// Uygun biçimlendirmeyi kullanın (örneğin, sıfır dolgulu sayılar için %02d)
	// Özet istatistikleri görüntüle
	// Ek zaman ayrıntılarını görüntüle
	// Tamamlanma mesajını görüntüle
	
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Go derleyicisi