プログラミングで時間の値を操作するには、多くの場合、日付を操作し、時間枠の特定の側面を決定する必要があります。一般的なタスクの 1 つは、特定の月の最後の日を見つけることです。これは、2 月など、日数が異なる月を扱う場合に特に困難になる可能性があります。
Go の time パッケージでは、time.Time 型は時点を表します。指定された time.Time 値の月の最終日を取得するには、Date 関数を使用できます。
Date 関数は、次のようないくつかのパラメーターを受け取ります。
月の最後の日を見つけるには、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