Go で次の日の特定の時間を効率的に取得するにはどうすればよいですか?

DDD
リリース: 2024-10-26 12:35:29
オリジナル
912 人が閲覧しました

How to Efficiently Get a Specific Time for the Following Day in Go?

翌日の特定の時刻を取得する方法

はじめに

翌日の正確な時刻を取得するには、次の方法があります。 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>
ログイン後にコピー

仕組み

このコードは次のように機能します。

  1. 現在時刻を取得し、now.Round(0) を使用して最も近い整数に四捨五入します。
  2. 抽出
  3. 抽出された年、月、日の値と必要な時、分、秒の値を使用して、time.Date を使用して明日の新しい時刻を作成します。
  4. 明日の位置を現在の時刻の位置に設定します。

最適化

このコードは、time への呼び出しを最小限に抑えることで最適化されています。関数とメソッドをパッケージ化します。年、月、日を一度だけ計算し、それを明日の作成に再利用することで、関数呼び出しの数が大幅に削減されます。

ベンチマーク結果

ベンチマークこの最適化されたアプローチが他の方法よりも優れていることがわかります。次の表にベンチマーク結果を示します:

Benchmark Operations per Second
BenchmarkNow 31197811
BenchmarkTomorrowPeterSO 29852671
BenchmarkTomorrowJens 9523422

以上がGo で次の日の特定の時間を効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!