use std::fmt::Display;
use crate::DayCounter;
use chrono::NaiveDate;
#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
pub struct Actual36525;
impl DayCounter for Actual36525 {
fn day_count_fraction(&self, start: &NaiveDate, end: &NaiveDate) -> f64 {
(*end - *start).num_days() as f64 / 365.25
}
}
impl Display for Actual36525 {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "Actual/365.25")
}
}
#[allow(clippy::module_name_repetitions)]
#[derive(Debug, Copy, Clone, Default, PartialEq, Eq)]
pub struct Actual36525Inc;
impl DayCounter for Actual36525Inc {
fn day_count_fraction(&self, start: &NaiveDate, end: &NaiveDate) -> f64 {
((*end - *start).num_days() + 1) as f64 / 365.25
}
}
impl Display for Actual36525Inc {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "Actual/365.25 (inc)")
}
}