Package time in golang

สวัสดีค่ะ วันก่อนได้ลองทำโจทย์เล็กๆ โจทย์คือถ้าเวลาอยู่ในช่วงหลังเที่ยงคืนถึงก่อนเที่ยงวันจะ say “Hello, Good morning” ถ้าเวลาจากเที่ยงวันไปถึงหกโมงเย็นจะ say “Hello, Good afternoon” และถ้าเวลาหลังหกโมงเย็นไปถึงเที่ยงคืนจะ say “Hello, Good evening” เลยขอหยิบเรื่องเล็กๆที่เจอและขอบันทึกไว้เผื่อจะเป็นประโยชน์สำหรับคนที่เขียน Go กันอยู่นะคะ

  1. แปลงเวลาให้อยู่ใน format AM/PM
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
fmt.Println(now.Format("03:04 PM"))
}

เราสามารถใช้ function Format แล้วใส่ string pattern นี้เข้าไป ผลลัพธ์ที่ได้จะเป็น

11:00 PM

2. การใช้ After และ Before

if now.After(midday) && now.Before(sunset) {  
fmt.Fprint(w, "Hello, Good afternoon.")
}

After ใช้เช็คว่า now อยู่หลังจาก midday หรือเปล่า 
Before ก็เช่นกันใช้ เช็คว่า now อยู่ก่อน sunset หรือเปล่า 
Equal ใช้เช็คว่าเท่ากันมั้ย return

ทั้งสาม function นี้ ค่าที่ return จะเป็น true หรือ false ค่ะ

3. การสร้าง Date ใน Go

midday := time.Date(now.Year(), now.Month(), now.Day(), 12, 0, 0, 0, time.Local)

ใช้ package time แล้วเรียกใช้ function Date ส่ง parameters ไป 8 ตัว ได้แก่ ปี เดือน วัน ชั่วโมง นาที วินาที นาโนวินาที และตัวกำหนด Time Zone

time.Local หมายถึง เอาเวลาของเครื่องที่รัน

โจทย์ที่ลองทำดูไปดูที่นี่นะคะ https://github.com/Kanokorn/english-greetings
ใครได้ลองใช้อะไรใน package time บ้างเอามาแชร์กันหน่อยนะคะ ขอบคุณที่อ่านค่ะ

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.