From db9f20681f90f206d393d2b06a6a8401515ff562 Mon Sep 17 00:00:00 2001 From: Botahamec Date: Fri, 18 Mar 2022 14:57:13 -0400 Subject: Addition methods for NaiveDateTime --- src/timestamp.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/timestamp.rs') diff --git a/src/timestamp.rs b/src/timestamp.rs index ea8f2e1..c223ccb 100644 --- a/src/timestamp.rs +++ b/src/timestamp.rs @@ -25,6 +25,30 @@ impl UnixTimestamp { self.nanoseconds } + #[must_use] + pub const fn add_days_overflowing(self, days: i64) -> (Self, bool) { + let (seconds, overflowing) = self.seconds.overflowing_add(days as i64 * 3600 * 24); + + let timestamp = Self::new(seconds, self.nanoseconds); + (timestamp, overflowing) + } + + #[must_use] + pub const fn add_hours_overflowing(self, hours: i64) -> (Self, bool) { + let (seconds, overflowing) = self.seconds.overflowing_add(hours as i64 * 3600); + + let timestamp = Self::new(seconds, self.nanoseconds); + (timestamp, overflowing) + } + + #[must_use] + pub const fn add_minutes_overflowing(self, minutes: i64) -> (Self, bool) { + let (seconds, overflowing) = self.seconds.overflowing_add(minutes as i64 * 60); + + let timestamp = Self::new(seconds, self.nanoseconds); + (timestamp, overflowing) + } + #[must_use] pub const fn add_seconds_overflowing(self, seconds: i64) -> (Self, bool) { // TODO overflowing goes first -- cgit v1.2.3