Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Mendapatkan Masa Tertentu dengan Cekap untuk Hari Berikutnya dalam Go?

Bagaimana Mendapatkan Masa Tertentu dengan Cekap untuk Hari Berikutnya dalam Go?

DDD
DDDasal
2024-10-26 12:35:29893semak imbas

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

Cara Mendapatkan Masa Tertentu pada Hari Berikutnya

Pengenalan

Mendapatkan masa yang tepat untuk hari berikutnya boleh tugas biasa apabila bekerja dengan tarikh dan masa dalam Go. Artikel ini meneroka pendekatan yang lebih pendek dan cekap untuk mencapai matlamat ini.

Masalah

Kod sedia ada secara berkesan mencipta masa untuk titik masa tertentu pada hari berikutnya dengan menambah satu hari ke Tarikh dengan jam dan minit yang dikehendaki. Walau bagaimanapun, ia melibatkan berbilang panggilan fungsi dan boleh menjadi verbose.

Jawapan

Pakej masa dalam Go menyediakan cara yang lebih ringkas untuk mencapai hasil yang diingini. Kaedah Pusingan(0) boleh digunakan untuk membundarkan masa semasa kepada keseluruhan saat yang terdekat. Menggunakan masa bulat ini sebagai asas, masa baharu boleh dibuat dengan menetapkan nilai tarikh secara berasingan.

Kod Cekap

<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>

Cara Ia Berfungsi

Kod ini berfungsi dengan:

  1. Mendapatkan masa semasa dan membulatkannya ke seluruh saat yang terdekat menggunakan sekarang.Bulatan(0).
  2. Mengekstrak tahun, bulan dan hari daripada masa bulat.
  3. Mencipta masa baharu esok menggunakan masa.Tarikh dengan nilai tahun, bulan dan hari yang diekstrak, bersama-sama dengan nilai jam, minit dan saat yang dikehendaki.
  4. Menetapkan lokasi esok kepada lokasi masa semasa.

Pengoptimuman

Kod ini dioptimumkan dengan meminimumkan panggilan ke masa fungsi dan kaedah pakej. Dengan mengira tahun, bulan dan hari sekali sahaja dan kemudian menggunakannya semula untuk mencipta esok, bilangan panggilan fungsi dikurangkan dengan ketara.

Hasil Penanda Aras

Tanda Aras menunjukkan bahawa pendekatan yang dioptimumkan ini mengatasi kaedah lain. Jadual berikut memaparkan hasil penanda aras:

Benchmark Operations per Second
BenchmarkNow 31197811
BenchmarkTomorrowPeterSO 29852671
BenchmarkTomorrowJens 9523422

Atas ialah kandungan terperinci Bagaimana Mendapatkan Masa Tertentu dengan Cekap untuk Hari Berikutnya dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn