mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
time: rewrite IsZero method to use wall and ext fields
Using wall and ext fields will be more efficient.
Fixes #76001
Change-Id: If2b9f597562e0d0d3f8ab300556fa559926480a0
GitHub-Last-Rev: 4a91948413
GitHub-Pull-Request: golang/go#76006
Reviewed-on: https://go-review.googlesource.com/c/go/+/713720
Reviewed-by: Ian Lance Taylor <iant@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: David Chase <drchase@google.com>
This commit is contained in:
parent
f619b4a00d
commit
189f2c08cc
1 changed files with 5 additions and 1 deletions
|
|
@ -260,7 +260,11 @@ func (t *Time) mono() int64 {
|
|||
// IsZero reports whether t represents the zero time instant,
|
||||
// January 1, year 1, 00:00:00 UTC.
|
||||
func (t Time) IsZero() bool {
|
||||
return t.sec() == 0 && t.nsec() == 0
|
||||
// If hasMonotonic is set in t.wall, then the time can't be before 1885, so it can't be the year 1.
|
||||
// If hasMonotonic is zero, then all the bits in wall other than the nanoseconds field should be 0.
|
||||
// So if there are no nanoseconds then t.wall == 0, and if there are no seconds then t.ext == 0.
|
||||
// This is equivalent to t.sec() == 0 && t.nsec() == 0, but is more efficient.
|
||||
return t.wall == 0 && t.ext == 0
|
||||
}
|
||||
|
||||
// After reports whether the time instant t is after u.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue