use crate::Dt;
use crate::LEGACY_ORDINAL_YEAR_RANGE;
use crate::TimeParts;
#[inline]
pub(crate) fn parse_yyddd(s: &str) -> Option<Dt> {
if s.len() != 5 {
return None;
}
let parsed = TimeParts::from_str("%y%j", s, true, true, false).ok()?;
if let Some(y) = parsed.year {
if !LEGACY_ORDINAL_YEAR_RANGE.contains(&(y as i32)) {
return None;
}
}
parsed.to_time_point().ok()
}
#[inline]
pub(crate) fn parse_yyyyjjj(s: &str) -> Option<Dt> {
let parsed = TimeParts::from_str("%Y%j", s, true, true, false).ok()?;
if let Some(y) = parsed.year {
if !LEGACY_ORDINAL_YEAR_RANGE.contains(&(y as i32)) {
return None;
}
}
parsed.to_time_point().ok()
}