Einführung
Eine genaue Uhrzeit für den nächsten Tag ermitteln kann sein eine häufige Aufgabe bei der Arbeit mit Datums- und Uhrzeitangaben in Go. In diesem Artikel wird ein kürzerer und effizienterer Ansatz zum Erreichen dieses Ziels untersucht.
Problem
Der vorhandene Code erstellt durch Hinzufügen effektiv eine Zeit für einen bestimmten Zeitpunkt am folgenden Tag einen Tag zu einem Datum mit der gewünschten Stunde und Minute. Es umfasst jedoch mehrere Funktionsaufrufe und kann ausführlich sein.
Antwort
Das Zeitpaket in Go bietet eine präzisere Möglichkeit, das gewünschte Ergebnis zu erzielen. Mit der Round(0)-Methode kann die aktuelle Zeit auf die nächste ganze Sekunde gerundet werden. Mit dieser gerundeten Zeit als Basis kann eine neue Zeit erstellt werden, indem die Datumswerte separat festgelegt werden.
Effizienter Code
<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>
Wie es funktioniert
Dieser Code funktioniert wie folgt:
Optimierung
Dieser Code wird durch Minimierung von Zeitaufrufen optimiert Paketfunktionen und -methoden. Durch die einmalige Berechnung von Jahr, Monat und Tag und deren Wiederverwendung zum Erstellen von morgen wird die Anzahl der Funktionsaufrufe erheblich reduziert.
Benchmark-Ergebnisse
Benchmarks zeigen, dass dieser optimierte Ansatz andere Methoden übertrifft. Die folgende Tabelle zeigt die Benchmark-Ergebnisse:
Benchmark | Operations per Second |
---|---|
BenchmarkNow | 31197811 |
BenchmarkTomorrowPeterSO | 29852671 |
BenchmarkTomorrowJens | 9523422 |
Das obige ist der detaillierte Inhalt vonWie kann ich in Go effizient eine bestimmte Zeit für den nächsten Tag ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!