はじめに
翌日の正確な時刻を取得するには、次の方法があります。 Go で日付と時刻を操作する場合の一般的なタスクです。この記事では、この目標を達成するためのより短く効率的なアプローチについて説明します。
問題
既存のコードは、次の追加を行うことで、翌日の特定の時点の時間を効果的に作成します。希望の時と分の日付に 1 日を入力します。ただし、複数の関数呼び出しが含まれており、冗長になる可能性があります。
Answer
Go の time パッケージは、目的の結果を達成するためのより簡潔な方法を提供します。 Round(0) メソッドを使用すると、現在時刻を最も近い整数秒に丸めることができます。この丸められた時刻をベースとして使用し、日付値を個別に設定することで新しい時刻を作成できます。
効率的なコード
<code class="go">package main import ( "fmt" "time" ) func main() { now := time.Now().Round(0) yyyy, mm, dd := now.Date() tomorrow := time.Date(yyyy, mm, dd+1, 15, 0, 0, 0, now.Location()) fmt.Println(tomorrow) }</code>
仕組み
このコードは次のように機能します。
最適化
このコードは、time への呼び出しを最小限に抑えることで最適化されています。関数とメソッドをパッケージ化します。年、月、日を一度だけ計算し、それを明日の作成に再利用することで、関数呼び出しの数が大幅に削減されます。
ベンチマーク結果
ベンチマークこの最適化されたアプローチが他の方法よりも優れていることがわかります。次の表にベンチマーク結果を示します:
Benchmark | Operations per Second |
---|---|
BenchmarkNow | 31197811 |
BenchmarkTomorrowPeterSO | 29852671 |
BenchmarkTomorrowJens | 9523422 |
以上がGo で次の日の特定の時間を効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。