xlsxwriter 0.6.1

Write xlsx file with number, formula, string, formatting, autofilter, merged cells, data validation and more.
Documentation
#[cfg(feature = "chrono")]
use chrono::{Datelike, Timelike};

use super::DateTime;

impl DateTime {
    #[must_use]
    pub fn new(year: i16, month: i8, day: i8, hour: i8, min: i8, second: f64) -> DateTime {
        DateTime {
            year,
            month,
            day,
            hour,
            min,
            second,
        }
    }

    #[must_use]
    pub fn date(year: i16, month: i8, day: i8) -> DateTime {
        DateTime {
            year,
            month,
            day,
            hour: 0,
            min: 0,
            second: 0.0,
        }
    }

    #[must_use]
    pub fn time(hour: i8, min: i8, second: f64) -> DateTime {
        DateTime {
            year: 0,
            month: 0,
            day: 0,
            hour,
            min,
            second,
        }
    }
}

#[cfg(feature = "chrono")]
impl From<chrono::naive::NaiveDateTime> for DateTime {
    fn from(datetime: chrono::naive::NaiveDateTime) -> Self {
        DateTime {
            year: datetime.year() as i16,
            month: datetime.month() as i8,
            day: datetime.day() as i8,
            hour: datetime.hour() as i8,
            min: datetime.minute() as i8,
            second: datetime.second().into(),
        }
    }
}

#[cfg(feature = "chrono")]
impl From<chrono::naive::NaiveDate> for DateTime {
    fn from(datetime: chrono::naive::NaiveDate) -> Self {
        DateTime {
            year: datetime.year() as i16,
            month: datetime.month() as i8,
            day: datetime.day() as i8,
            hour: 0,
            min: 0,
            second: 0.,
        }
    }
}

#[cfg(feature = "chrono")]
impl From<chrono::naive::NaiveTime> for DateTime {
    fn from(datetime: chrono::naive::NaiveTime) -> Self {
        DateTime {
            year: 1900,
            month: 1,
            day: 0,
            hour: datetime.hour() as i8,
            min: datetime.minute() as i8,
            second: datetime.second().into(),
        }
    }
}

impl From<&DateTime> for libxlsxwriter_sys::lxw_datetime {
    fn from(datetime: &DateTime) -> Self {
        libxlsxwriter_sys::lxw_datetime {
            year: datetime.year.into(),
            month: datetime.month.into(),
            day: datetime.day.into(),
            hour: datetime.hour.into(),
            min: datetime.min.into(),
            sec: datetime.second,
        }
    }
}