date time functions (#425)
* merge networkdays, networkdays.intl #33 * merge time, timevalue, hour, minute, second #35 * merge datedif, datevalue #36 * merge days, days360, weekday, weeknum, workday, workday.intl, yearfrac, isoweeknum #41 * from excel helper * fix build * date time macros * de-dupe weekend * serial helper * de-dupe now today * weekend pattern enum * remove unused clippy wrong self * fix docs * add test coverage * fix build * fix cursor comment * PR coments + xlsx date time
This commit is contained in:
@@ -148,13 +148,30 @@ pub enum Function {
|
||||
|
||||
// Date and time
|
||||
Date,
|
||||
Datedif,
|
||||
Datevalue,
|
||||
Day,
|
||||
Edate,
|
||||
Eomonth,
|
||||
Month,
|
||||
Time,
|
||||
Timevalue,
|
||||
Hour,
|
||||
Minute,
|
||||
Second,
|
||||
Now,
|
||||
Today,
|
||||
Year,
|
||||
Networkdays,
|
||||
NetworkdaysIntl,
|
||||
Days,
|
||||
Days360,
|
||||
Weekday,
|
||||
Weeknum,
|
||||
Workday,
|
||||
WorkdayIntl,
|
||||
Yearfrac,
|
||||
Isoweeknum,
|
||||
|
||||
// Financial
|
||||
Cumipmt,
|
||||
@@ -253,7 +270,7 @@ pub enum Function {
|
||||
}
|
||||
|
||||
impl Function {
|
||||
pub fn into_iter() -> IntoIter<Function, 198> {
|
||||
pub fn into_iter() -> IntoIter<Function, 215> {
|
||||
[
|
||||
Function::And,
|
||||
Function::False,
|
||||
@@ -362,9 +379,26 @@ impl Function {
|
||||
Function::Month,
|
||||
Function::Eomonth,
|
||||
Function::Date,
|
||||
Function::Datedif,
|
||||
Function::Datevalue,
|
||||
Function::Edate,
|
||||
Function::Networkdays,
|
||||
Function::NetworkdaysIntl,
|
||||
Function::Time,
|
||||
Function::Timevalue,
|
||||
Function::Hour,
|
||||
Function::Minute,
|
||||
Function::Second,
|
||||
Function::Today,
|
||||
Function::Now,
|
||||
Function::Days,
|
||||
Function::Days360,
|
||||
Function::Weekday,
|
||||
Function::Weeknum,
|
||||
Function::Workday,
|
||||
Function::WorkdayIntl,
|
||||
Function::Yearfrac,
|
||||
Function::Isoweeknum,
|
||||
Function::Pmt,
|
||||
Function::Pv,
|
||||
Function::Rate,
|
||||
@@ -631,9 +665,26 @@ impl Function {
|
||||
"EOMONTH" => Some(Function::Eomonth),
|
||||
"MONTH" => Some(Function::Month),
|
||||
"DATE" => Some(Function::Date),
|
||||
"DATEDIF" => Some(Function::Datedif),
|
||||
"DATEVALUE" => Some(Function::Datevalue),
|
||||
"EDATE" => Some(Function::Edate),
|
||||
"NETWORKDAYS" => Some(Function::Networkdays),
|
||||
"NETWORKDAYS.INTL" => Some(Function::NetworkdaysIntl),
|
||||
"TIME" => Some(Function::Time),
|
||||
"TIMEVALUE" => Some(Function::Timevalue),
|
||||
"HOUR" => Some(Function::Hour),
|
||||
"MINUTE" => Some(Function::Minute),
|
||||
"SECOND" => Some(Function::Second),
|
||||
"TODAY" => Some(Function::Today),
|
||||
"NOW" => Some(Function::Now),
|
||||
"DAYS" => Some(Function::Days),
|
||||
"DAYS360" => Some(Function::Days360),
|
||||
"WEEKDAY" => Some(Function::Weekday),
|
||||
"WEEKNUM" => Some(Function::Weeknum),
|
||||
"WORKDAY" => Some(Function::Workday),
|
||||
"WORKDAY.INTL" => Some(Function::WorkdayIntl),
|
||||
"YEARFRAC" => Some(Function::Yearfrac),
|
||||
"ISOWEEKNUM" => Some(Function::Isoweeknum),
|
||||
// Financial
|
||||
"PMT" => Some(Function::Pmt),
|
||||
"PV" => Some(Function::Pv),
|
||||
@@ -841,9 +892,26 @@ impl fmt::Display for Function {
|
||||
Function::Month => write!(f, "MONTH"),
|
||||
Function::Eomonth => write!(f, "EOMONTH"),
|
||||
Function::Date => write!(f, "DATE"),
|
||||
Function::Datedif => write!(f, "DATEDIF"),
|
||||
Function::Datevalue => write!(f, "DATEVALUE"),
|
||||
Function::Edate => write!(f, "EDATE"),
|
||||
Function::Networkdays => write!(f, "NETWORKDAYS"),
|
||||
Function::NetworkdaysIntl => write!(f, "NETWORKDAYS.INTL"),
|
||||
Function::Time => write!(f, "TIME"),
|
||||
Function::Timevalue => write!(f, "TIMEVALUE"),
|
||||
Function::Hour => write!(f, "HOUR"),
|
||||
Function::Minute => write!(f, "MINUTE"),
|
||||
Function::Second => write!(f, "SECOND"),
|
||||
Function::Today => write!(f, "TODAY"),
|
||||
Function::Now => write!(f, "NOW"),
|
||||
Function::Days => write!(f, "DAYS"),
|
||||
Function::Days360 => write!(f, "DAYS360"),
|
||||
Function::Weekday => write!(f, "WEEKDAY"),
|
||||
Function::Weeknum => write!(f, "WEEKNUM"),
|
||||
Function::Workday => write!(f, "WORKDAY"),
|
||||
Function::WorkdayIntl => write!(f, "WORKDAY.INTL"),
|
||||
Function::Yearfrac => write!(f, "YEARFRAC"),
|
||||
Function::Isoweeknum => write!(f, "ISOWEEKNUM"),
|
||||
Function::Pmt => write!(f, "PMT"),
|
||||
Function::Pv => write!(f, "PV"),
|
||||
Function::Rate => write!(f, "RATE"),
|
||||
@@ -1082,9 +1150,26 @@ impl Model {
|
||||
Function::Eomonth => self.fn_eomonth(args, cell),
|
||||
Function::Month => self.fn_month(args, cell),
|
||||
Function::Date => self.fn_date(args, cell),
|
||||
Function::Datedif => self.fn_datedif(args, cell),
|
||||
Function::Datevalue => self.fn_datevalue(args, cell),
|
||||
Function::Edate => self.fn_edate(args, cell),
|
||||
Function::Networkdays => self.fn_networkdays(args, cell),
|
||||
Function::NetworkdaysIntl => self.fn_networkdays_intl(args, cell),
|
||||
Function::Time => self.fn_time(args, cell),
|
||||
Function::Timevalue => self.fn_timevalue(args, cell),
|
||||
Function::Hour => self.fn_hour(args, cell),
|
||||
Function::Minute => self.fn_minute(args, cell),
|
||||
Function::Second => self.fn_second(args, cell),
|
||||
Function::Today => self.fn_today(args, cell),
|
||||
Function::Now => self.fn_now(args, cell),
|
||||
Function::Days => self.fn_days(args, cell),
|
||||
Function::Days360 => self.fn_days360(args, cell),
|
||||
Function::Weekday => self.fn_weekday(args, cell),
|
||||
Function::Weeknum => self.fn_weeknum(args, cell),
|
||||
Function::Workday => self.fn_workday(args, cell),
|
||||
Function::WorkdayIntl => self.fn_workday_intl(args, cell),
|
||||
Function::Yearfrac => self.fn_yearfrac(args, cell),
|
||||
Function::Isoweeknum => self.fn_isoweeknum(args, cell),
|
||||
// Financial
|
||||
Function::Pmt => self.fn_pmt(args, cell),
|
||||
Function::Pv => self.fn_pv(args, cell),
|
||||
|
||||
Reference in New Issue
Block a user