#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
pub struct ZipDateTime {
pub(crate) date: u16,
pub(crate) time: u16,
}
impl ZipDateTime {
pub fn year(&self) -> i32 {
(((self.date & 0xFE00) >> 9) + 1980).into()
}
pub fn month(&self) -> u32 {
((self.date & 0x1E0) >> 5).into()
}
pub fn day(&self) -> u32 {
(self.date & 0x1F).into()
}
pub fn hour(&self) -> u32 {
((self.time & 0xF800) >> 11).into()
}
pub fn minute(&self) -> u32 {
((self.time & 0x7E0) >> 5).into()
}
pub fn second(&self) -> u32 {
((self.time & 0x1F) << 1).into()
}
}