change set date signature

This commit is contained in:
Stefan
2025-05-08 20:21:16 +02:00
parent aee1128095
commit 27a39b4a22
2 changed files with 9 additions and 9 deletions
+3 -3
View File
@@ -115,7 +115,7 @@ impl From<&DateMethod> for Rc<dyn FunctionDefinition> {
DM::Set => Rc::new(StaticFunction {
implementation: Rc::new(imp::set),
signature: FunctionSignature {
parameters: vec![VT::Date, VT::Number, unit_vt.clone()],
parameters: vec![VT::Date, unit_vt.clone(), VT::Number],
return_type: VT::Date,
},
}),
@@ -254,8 +254,8 @@ mod imp {
pub fn set(args: Arguments) -> anyhow::Result<V> {
let this = args.dynamic::<VmDate>(0)?;
let value = args.number(1)?;
let unit = __internal_extract_duration_unit(&args, 2)?;
let unit = __internal_extract_duration_unit(&args, 1)?;
let value = args.number(2)?;
let value_u32 = value.to_u32().context("Invalid duration value")?;
+6 -6
View File
@@ -56,12 +56,12 @@ d('2000-10-15').isLeapYear();;true
d('1900-10-15').isLeapYear();;false
# Date setters
d('2023-10-15').set(2024, 'year');;'2024-10-15T00:00:00Z'
d('2023-10-15').set(5, 'month');;'2023-05-15T00:00:00Z'
d('2023-10-15').set(20, 'day');;'2023-10-20T00:00:00Z'
d('2023-10-15T10:30:00Z').set(15, 'hour');;'2023-10-15T15:30:00Z'
d('2023-10-15T10:30:00Z').set(45, 'minute');;'2023-10-15T10:45:00Z'
d('2023-10-15T10:30:00Z').set(30, 'second');;'2023-10-15T10:30:30Z'
d('2023-10-15').set('year', 2024);;'2024-10-15T00:00:00Z'
d('2023-10-15').set('month', 5);;'2023-05-15T00:00:00Z'
d('2023-10-15').set('day', 20);;'2023-10-20T00:00:00Z'
d('2023-10-15T10:30:00Z').set('hour', 15);;'2023-10-15T15:30:00Z'
d('2023-10-15T10:30:00Z').set('minute', 45);;'2023-10-15T10:45:00Z'
d('2023-10-15T10:30:00Z').set('second', 30);;'2023-10-15T10:30:30Z'
# Special date checks
d().isSame(d(), 'day');;true
1 expression (string);input (json 5);output (json 5)
56 d('2023-10-15').set(20, 'day');;'2023-10-20T00:00:00Z' d('2023-10-15').set('day', 20);;'2023-10-20T00:00:00Z'
57 d('2023-10-15T10:30:00Z').set(15, 'hour');;'2023-10-15T15:30:00Z' d('2023-10-15T10:30:00Z').set('hour', 15);;'2023-10-15T15:30:00Z'
58 d('2023-10-15T10:30:00Z').set(45, 'minute');;'2023-10-15T10:45:00Z' d('2023-10-15T10:30:00Z').set('minute', 45);;'2023-10-15T10:45:00Z'
59 d('2023-10-15T10:30:00Z').set(30, 'second');;'2023-10-15T10:30:30Z' d('2023-10-15T10:30:00Z').set('second', 30);;'2023-10-15T10:30:30Z'
60 # Special date checks
61 d().isSame(d(), 'day');;true
62 d('2023-10-15').startOf('day');;'2023-10-15T00:00:00Z'
63 d('2023-10-15T10:30:45Z').startOf('hour');;'2023-10-15T10:00:00Z'
64 d('2023-10-15').endOf('day');;'2023-10-15T23:59:59Z'
65 d('2023-10-15T10:30:45Z').endOf('hour');;'2023-10-15T10:59:59Z'
66 d('2023-10-15').startOf('month');;'2023-10-01T00:00:00Z'
67 d('2023-10-15').endOf('month');;'2023-10-31T23:59:59Z'