「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Go の Time パッケージを使用して月の最終日を決定するにはどうすればよいですか?

Go の Time パッケージを使用して月の最終日を決定するにはどうすればよいですか?

2024 年 11 月 23 日に公開
ブラウズ:674

How to Determine the Last Day of a Month Using Go\'s Time Package?

Time.Time を使用した月の最終日の決定

プログラミングで時間の値を操作するには、多くの場合、日付を操作し、時間枠の特定の側面を決定する必要があります。一般的なタスクの 1 つは、特定の月の最後の日を見つけることです。これは、2 月など、日数が異なる月を扱う場合に特に困難になる可能性があります。

Go の time パッケージでは、time.Time 型は時点を表します。指定された time.Time 値の月の最終日を取得するには、Date 関数を使用できます。

Date 関数は、次のようないくつかのパラメーターを受け取ります。

  • year: year
  • month: 月 (time.Month 定数として)
  • day: 月の日
  • hour: 時刻day
  • min: 時の分
  • sec: 分の秒
  • nsec: 秒のナノ秒
  • loc: 場所(タイムゾーン)

月の最後の日を見つけるには、day パラメータを 0 に設定し、month パラメータを 1 ずつ増分します。これにより、翌月の初日を表す time.Time 値が返されます。次に、この値から 1 日を引いて、現在の月の最後の日を取得します。

たとえば、2016 年 1 月の最後の日を見つけるには、次のコードを使用できます:

package main

import (
    "fmt"
    "time"
)

func main() {
    // January, 29th
    t, _ := time.Parse("2006-01-02", "2016-01-29")

    // Increment month and set day to 0 to get first day of next month
    y, m, _ := t.Date()
    lastDay := time.Date(y, m 1, 0, 0, 0, 0, 0, time.UTC)

    // Subtract one day to get last day of current month
    lastDay = lastDay.Add(-24 * time.Hour)

    fmt.Println(lastDay)
}

このプログラムの出力は次のとおりです:

2016-01-31 00:00:00  0000 UTC

これにより、月の最終日が正しく得られます。は 2016 年 1 月 31 日です。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3