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.

quiz iconKendini test et

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

quiz iconKendini test et

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

quiz iconKendini test et

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

challenge icon

Görev

Kolay

Geçerli zamanı yakalayan ve bunu birden fazla formatta görüntüleyen bir zaman izleme uygulaması oluşturun. Bu zorluk, time.Now() fonksiyonunu kullanma ve geçerli anın farklı bileşenlerini ayıklamak için time.Time nesneleriyle çalışma yeteneğinizi test edecektir.

Bir adet girdi alacaksınız:

  • "format1,format2,format3" formatında virgülle ayrılmış görüntüleme formatı isteklerini içeren bir dize (örneğin, "full,date,time,year,month,day")

Göreviniz şunları yapmaktır:

  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. Bireysel format isteklerini elde etmek için girdiyi virgüllerden ayırarak ayrıştırın
  5. Formatlar başlığını görüntüleyin: "Displaying time in requested formats:"
  6. Her format isteği için, zaman bilgisini belirtilen formata göre 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() metodu bileşenlerini kullanın)
    • "time" için: "Time only: [hour]:[minute]:[second]" görüntüleyin (Hour(), Minute(), Second() metodlarını kullanın)
    • "year" için: "Year: [year_value]" görüntüleyin (Year() metodunu kullanın)
    • "month" için: "Month: [month_name]" görüntüleyin (Month() metodunu kullanın)
    • "day" için: "Day: [day_value]" görüntüleyin (Day() metodunu kullanın)
    • "weekday" için: "Weekday: [weekday_name]" görüntüleyin (Weekday() metodunu kullanın)
    • "unix" için: "Unix timestamp: [unix_seconds]" görüntüleyin (Unix() metodunu 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() metodunu kullanın)
    • "- Location: [timezone_location]" (Location() metodunu kullanın)
    • "- Is zero time: [true_or_false]" (IsZero() metodunu 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 ayırmak için strings paketini ve formatlı çıktı için fmt paketini kullanın. time.Now() fonksiyonunun geçerli an hakkındaki tüm bilgileri içeren bir time.Time nesnesi döndürdüğünü ve bu nesne üzerindeki çeşitli metodları kullanarak belirli bileşenleri ayıklayabileceğinizi unutmayın. Bu zorluk, 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östermektedir.

Kopya kağıdı

Go'da tarihler ve saatlerle çalışmak için time paketini içe aktarın:

import "time"

time.Now() kullanarak geçerli saati alın:

now := time.Now()
fmt.Println(now)

time.Now() fonksiyonu; yıl, ay, gün, saat, dakika, saniye, nanosaniye ve zaman dilimi bilgilerini içeren, şu anki anı temsil eden bir time.Time nesnesi döndürür.

Metotları kullanarak bir time.Time nesnesinden belirli bileşenleri çıkarın:

now := time.Now()
year := now.Year()
month := now.Month()
day := now.Day()
hour := now.Hour()
minute := now.Minute()
second := now.Second()
nanosecond := now.Nanosecond()
weekday := now.Weekday()
unix := now.Unix()
location := now.Location()
isZero := now.IsZero()

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