summaryrefslogtreecommitdiff
path: root/transformers/actualbudget_transformer/actualbudget_models/src
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-01-17 07:47:36 +0000
committerJoe Carstairs <me@joeac.net>2026-01-17 11:49:56 +0000
commit70b326ddbe47fbec3d6516fa223ecde41988a5d2 (patch)
treeb704610b4ba44294a14005cebd700abac2c2b6bf /transformers/actualbudget_transformer/actualbudget_models/src
parent6679a7ab6a52df9bca907f154cc6b069ebc83a6d (diff)
ActualbudgetDate::from_ymd()
Diffstat (limited to 'transformers/actualbudget_transformer/actualbudget_models/src')
-rw-r--r--transformers/actualbudget_transformer/actualbudget_models/src/actualbudget_date.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/transformers/actualbudget_transformer/actualbudget_models/src/actualbudget_date.rs b/transformers/actualbudget_transformer/actualbudget_models/src/actualbudget_date.rs
index aaab5e8..08b648e 100644
--- a/transformers/actualbudget_transformer/actualbudget_models/src/actualbudget_date.rs
+++ b/transformers/actualbudget_transformer/actualbudget_models/src/actualbudget_date.rs
@@ -54,6 +54,15 @@ impl ActualbudgetDate {
ActualbudgetDate(i.into())
}
+ pub fn from_ymd<T, S, U>(year: T, month: S, day: U) -> Self
+ where
+ T: Into<i64>,
+ S: Into<i64>,
+ U: Into<i64>,
+ {
+ Self(year.into() * 10_000 + month.into() * 100 + day.into())
+ }
+
fn date_part(&self) -> DatePart {
if self.0 < 10000000 {
DatePart::MonthOfYear
@@ -88,3 +97,16 @@ impl FromSql<Integer, Sqlite> for ActualbudgetDate {
Ok(ActualbudgetDate(int.into()))
}
}
+
+#[cfg(test)]
+mod test {
+ use crate::ActualbudgetDate;
+
+ #[test]
+ fn when_from_ymd_2026_01_16_then_constructs_2026_01_16() {
+ let actualbudget_date = ActualbudgetDate::from_ymd(2026, 1, 16);
+ assert_eq!(actualbudget_date.year(), "2026");
+ assert_eq!(actualbudget_date.month(), "01");
+ assert_eq!(actualbudget_date.day(), "16");
+ }
+}