diff options
Diffstat (limited to 'apps/koffice/libko/src/cass/date.rs')
-rw-r--r-- | apps/koffice/libko/src/cass/date.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/apps/koffice/libko/src/cass/date.rs b/apps/koffice/libko/src/cass/date.rs new file mode 100644 index 000000000000..e35b2a96f0f0 --- /dev/null +++ b/apps/koffice/libko/src/cass/date.rs @@ -0,0 +1,32 @@ +use crate::cass::Time; +use chrono::{FixedOffset as Offset, NaiveDate}; + +/// A convenienc wrapper around [chrono::NaiveDate](chrono::NaiveDate) +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] +pub struct Date { + inner: NaiveDate, +} + +impl Date { + pub fn today() -> Self { + Self::from(Time::now().date()) + } + + pub(crate) fn from(d: chrono::Date<Offset>) -> Self { + Self { + inner: d.naive_local(), + } + } +} + +impl From<NaiveDate> for Date { + fn from(inner: NaiveDate) -> Self { + Self { inner } + } +} + +impl ToString for Date { + fn to_string(&self) -> String { + format!("{}", self.inner.format("%Y-%m-%d")) + } +} |