Go言語で日付や曜日の取得方法
Go言語で日付や曜日を扱う方法は非常に直感的であり、標準ライブラリのtimeパッケージを使うことでさまざまな情報を取得できます。
ここでは、日付、曜日、時分、四半期、週番号、うるう年を取得する方法を紹介します。
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133655-300x300.png)
サルモリ
それでは早速見ていきましょう!
1. 現在の日付の取得
まずは、現在の日付を取得する方法から始めます。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 |
package main import ( "fmt" "time" ) func main() { now := time.Now() fmt.Println(now) } |
出力結果
2023-05-15 10:30:00 +0900 JST
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133712-300x300.png)
サルモリ
このコードでは、time.Now()関数を使って現在の日時を取得しています。
2. 曜日の取得
次に、曜日を取得する方法を見ていきましょう。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 |
package main import ( "fmt" "time" ) func main() { now := time.Now() fmt.Println(now.Weekday()) } |
出力結果
Monday
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題824_20230225215240-300x300.png)
サルモリ
今回は、Weekday()メソッドを使って曜日を取得しています。
3. 時分の取得
現在の時間(時と分)を取得する方法も見てみましょう。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 |
package main import ( "fmt" "time" ) func main() { now := time.Now() hour, min, _ := now.Clock() fmt.Printf("%02d:%02d\n", hour, min) |
出力結果
10:30
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133637-300x300.png)
サルモリ
Clock()メソッドを用いて現在の時間(時、分、秒)を取得し、その後printf関数でフォーマットして表示しています。
4. 四半期の取得
Go言語では、直接四半期を取得する機能は提供されていませんが、月を取得し、それをもとに四半期を計算することが可能です。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
package main import ( "fmt" "time" ) func main() { now := time.Now() month := int(now.Month()) quarter := (month-1)/3 + 1 fmt.Println(quarter) } |
出力結果
2
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133655-300x300.png)
サルモリ
現在の月を取得し、それを3で割って四半期を計算しています。
5. 週番号の取得
週番号も直接取得する機能はないのですが、年初からの経過日数を取得し、それを7で割ることで週番号を計算することができます。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 |
package main import ( "fmt" "time" ) func main() { now := time.Now() _, week := now.ISOWeek() fmt.Println(week) } |
出力結果
20
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133712-300x300.png)
サルモリ
ISOWeek()メソッドを使用してISO 8601形式での週番号を取得しています。
6. うるう年の判定
最後に、ある年がうるう年かどうかを判定する方法を見てみましょう。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
package main import ( "fmt" "time" ) func main() { year := time.Now().Year() if year%4 == 0 && (year%100 != 0 || year%400 == 0) { fmt.Printf("%d is a leap year.\n", year) } else { fmt.Printf("%d is not a leap year.\n", year) } } |
出力結果
2023 is not a leap year.
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題824_20230225215240-300x300.png)
サルモリ
ここでは、ある年がうるう年かどうかを判定するためのロジックを作成しています。うるう年は4で割り切れ、100で割り切れて400で割り切れない年はうるう年ではないというルールを適用しています。
まとめ
以上が、Go言語で日付や曜日を扱う方法のいくつかです。
Go言語のtimeパッケージは非常に強力で、これらの例以外にも多くの日付や時間に関する操作を行うことができます。さまざまなメソッドを活用して、日付や時間に関するさまざまなタスクを簡単に実行できるようになりましょう。
最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133637-300x300.png)
サルモリ
最後まで読んでくれてありがとう!!