Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencipta Objek `masa.Masa` dengan Cekap untuk Masa Tertentu pada Hari Berikutnya?

Bagaimana untuk Mencipta Objek `masa.Masa` dengan Cekap untuk Masa Tertentu pada Hari Berikutnya?

Patricia Arquette
Patricia Arquetteasal
2024-10-26 12:05:29833semak imbas

How to Efficiently Create a `time.Time` Object for a Specific Time on the Following Day?

Cara Mendapatkan Masa Tertentu pada Hari Seterusnya

Gambaran Keseluruhan

Artikel ini bertujuan untuk menyediakan penyelesaian untuk mencipta masa. Objek masa yang mewakili masa tertentu pada hari berikutnya. Kami akan meneroka pendekatan yang ringkas dan cekap untuk mencapainya.

Cabarannya

Tugasnya ialah untuk mencipta objek masa.Masa untuk jam dan minit tertentu pada hari berikutnya. Kod yang disediakan pada mulanya menawarkan penyelesaian yang mudah:

now := time.Now()
tomorrow := time.Date(now.Year(), now.Month(), now.Day(), 15, 0, 0, 0, time.UTC).AddDate(0, 0, 1)

Walaupun kaedah ini berfungsi dengan berkesan, ia melibatkan berbilang panggilan kaedah dan boleh menjadi agak bertele-tele.

Penyelesaian Dioptimumkan

Untuk meningkatkan kecekapan dan kepekatan, kami boleh memanfaatkan fungsi Tarikh dan menggunakan kaedah AddDate untuk mengubah suai tarikh yang dibuat. Pendekatan ini meminimumkan bilangan panggilan fungsi dan seruan kaedah:

import "time"

...

yyyy, mm, dd := now.Date()
tomorrow := time.Date(yyyy, mm, dd+1, 15, 0, 0, 0, now.Location())

Coretan kod ini menyelesaikan tugas yang sama dengan operasi yang lebih sedikit, menjadikannya cekap dan ringkas.

Hasil Penanda Aras

Untuk menilai prestasi penyelesaian yang dioptimumkan, kami menjalankan ujian penanda aras terhadap kod asal dan pendekatan lain oleh PeterSO pada Stack Overflow:

BenchmarkNow-8                  31197811            36.6 ns/op
BenchmarkTomorrowPeterSO-8      29852671            38.4 ns/op
BenchmarkTomorrowJens-8          9523422           124 ns/op

Hasilnya menunjukkan bahawa penyelesaian yang dioptimumkan adalah jauh lebih pantas, mengatasi prestasi kedua-dua pendekatan asal dan PeterSO. Ini mengesahkan kecekapan kaedah yang dicadangkan.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Objek `masa.Masa` dengan Cekap untuk Masa Tertentu pada Hari Berikutnya?. 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