use core::mem::MaybeUninit;
use flipperzero_sys as sys;
pub type DateTime = sys::DateTime;
pub fn datetime_is_valid(datetime: &DateTime) -> bool {
unsafe {
sys::datetime_validate_datetime(datetime as *const _ as *mut _)
}
}
pub fn datetime_to_timestamp(datetime: &DateTime) -> u32 {
unsafe {
sys::datetime_datetime_to_timestamp(datetime as *const _ as *mut _)
}
}
pub fn datetime_from_timestamp(timestamp: u32) -> DateTime {
let mut datetime = MaybeUninit::uninit();
unsafe {
sys::datetime_timestamp_to_datetime(timestamp, datetime.as_mut_ptr());
}
unsafe { datetime.assume_init() }
}
pub fn days_per_year(year: u16) -> u16 {
unsafe { sys::datetime_get_days_per_year(year) }
}
pub fn is_leap_year(year: u16) -> bool {
unsafe { sys::datetime_is_leap_year(year) }
}
pub fn days_per_month(leap_year: bool, month: u8) -> u8 {
unsafe { sys::datetime_get_days_per_month(leap_year, month) }
}