Menu
CoddyTech

Mendapatkan Waktu Saat Ini

Termasuk bagian Logika & Alur dalam perjalanan GO di Coddy. Pelajaran 58 dari 68.

Saat bekerja dengan tanggal dan waktu di program Go, kamu perlu menggunakan package bawaan Go time. Package ini menyediakan semua fungsionalitas yang kamu perlukan untuk melakukan operasi terkait waktu.

Titik awal yang paling umum adalah mendapatkan waktu saat ini. Go membuatnya mudah dengan fungsi time.Now():

package main

import (
    "fmt"
    "time"
)

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

Fungsi time.Now() mengembalikan object time.Time yang merepresentasikan waktu saat ini. Saat kamu mencetak object ini, object tersebut menampilkan tanggal dan waktu dalam format yang mudah dibaca, termasuk informasi zona waktu.

object time.Time ini berisi semua informasi tentang momen tertentu itu: tahun, bulan, tanggal, jam, menit, detik, bahkan nanodetik. Kamu akan menggunakan ini sebagai dasar untuk semua operasi waktu lainnya di Go.

challenge icon

Tantangan

Mudah

Buat aplikasi pelacak waktu yang menangkap waktu saat ini dan menampilkannya dalam beberapa format. Tantangan ini akan menguji kemampuanmu menggunakan fungsi time.Now() dan bekerja dengan object time.Time untuk mengambil berbagai komponen dari saat ini.

Kamu akan menerima satu input:

  • String yang berisi permintaan format tampilan, dipisahkan dengan koma, dengan format "format1,format2,format3" (misalnya, "full,date,time,year,month,day")

Tugasmu adalah:

  1. Gunakan time.Now() untuk menangkap waktu saat ini dan menyimpannya dalam variabel
  2. Tampilkan header aplikasi: "=== TIME TRACKER APPLICATION ==="
  3. Tampilkan konfirmasi bahwa timestamp berhasil ditangkap: "Current time captured successfully"
  4. Urai input dengan memisahkannya berdasarkan koma untuk mendapatkan setiap permintaan format
  5. Tampilkan header format: "Displaying time in requested formats:"
  6. Untuk setiap permintaan format, tampilkan informasi waktu sesuai format yang ditentukan:
    • Untuk "full": Tampilkan "Full timestamp: [complete_time_object]"
    • Untuk "date": Tampilkan "Date only: [year]-[month]-[day]" (gunakan komponen dari method Date())
    • Untuk "time": Tampilkan "Time only: [hour]:[minute]:[second]" (gunakan method Hour(), Minute(), Second())
    • Untuk "year": Tampilkan "Year: [year_value]" (gunakan method Year())
    • Untuk "month": Tampilkan "Month: [month_name]" (gunakan method Month())
    • Untuk "day": Tampilkan "Day: [day_value]" (gunakan method Day())
    • Untuk "weekday": Tampilkan "Weekday: [weekday_name]" (gunakan method Weekday())
    • Untuk "unix": Tampilkan "Unix timestamp: [unix_seconds]" (gunakan method Unix())
  7. Hitung dan tampilkan statistik:
    • "=== TIME INFORMATION SUMMARY ==="
    • "Total formats displayed: [number_of_formats]"
    • "Timestamp components extracted: [number_of_unique_components]"
  8. Tampilkan detail waktu tambahan:
    • "Additional time details:"
    • "- Nanoseconds: [nanosecond_value]" (gunakan method Nanosecond())
    • "- Location: [timezone_location]" (gunakan method Location())
    • "- Is zero time: [true_or_false]" (gunakan method IsZero())
  9. Tampilkan pesan penyelesaian: "Time tracking completed - all requested formats processed"

Gunakan package time untuk bekerja dengan object waktu, package strings untuk memisahkan string input, dan package fmt untuk output berformat. Ingat bahwa time.Now() mengembalikan object time.Time yang berisi semua informasi tentang saat ini, dan kamu dapat mengambil komponen tertentu menggunakan berbagai method yang tersedia pada object ini. Tantangan ini menunjukkan cara menangkap waktu saat ini dan mengambil berbagai informasi dari satu object time.Time.

Coba sendiri

package main

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

func main() {
	// Baca input
	var formatRequests string
	fmt.Scanln(&formatRequests)
	
	// Gunakan waktu tetap agar output konsisten (waktu referensi Go)
	// Alih-alih time.Now(), gunakan time.Date agar hasilnya dapat diprediksi
	currentTime := time.Date(2006, 1, 2, 15, 4, 5, 0, time.UTC)
	
	// Pisahkan permintaan format
	formats := strings.Split(formatRequests, ",")
	
	// TODO: Tulis kodemu di bawah ini
	// Tampilkan judul aplikasi
	// Tampilkan konfirmasi pencatatan stempel waktu
	// Tampilkan judul format
	// Proses setiap permintaan format dan tampilkan hasilnya sesuai permintaan
	// Gunakan map untuk melacak komponen unik yang akan dihitung
	// Gunakan pemformatan yang tepat (misalnya, %02d untuk angka dengan nol di depan)
	// Tampilkan statistik ringkasan
	// Tampilkan detail waktu tambahan
	// Tampilkan pesan penyelesaian
	
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika & Alur

Latihan sendiri: Compiler Go online