Struct icu_calendar::week::WeekCalculator
source · #[non_exhaustive]pub struct WeekCalculator {
pub first_weekday: IsoWeekday,
pub min_week_days: u8,
pub weekend: Option<WeekdaySet>,
}
Expand description
Calculator for week-of-month and week-of-year based on locale-specific configurations.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.first_weekday: IsoWeekday
The first day of a week.
min_week_days: u8
For a given week, the minimum number of that week’s days present in a given month or year for the week to be considered part of that month or year.
weekend: Option<WeekdaySet>
The set of weekend days, if available
Implementations§
source§impl WeekCalculator
impl WeekCalculator
sourcepub fn try_new(locale: &DataLocale) -> Result<Self, CalendarError>
pub fn try_new(locale: &DataLocale) -> Result<Self, CalendarError>
Creates a new WeekCalculator
from compiled data.
✨ Enabled with the compiled_data
Cargo feature.
sourcepub fn try_new_with_any_provider(
provider: &(impl AnyProvider + ?Sized),
locale: &DataLocale,
) -> Result<Self, CalendarError>
pub fn try_new_with_any_provider( provider: &(impl AnyProvider + ?Sized), locale: &DataLocale, ) -> Result<Self, CalendarError>
A version of Self::try_new_unstable
that uses custom data provided by an AnyProvider
.
sourcepub fn try_new_unstable<P>(
provider: &P,
locale: &DataLocale,
) -> Result<Self, CalendarError>
pub fn try_new_unstable<P>( provider: &P, locale: &DataLocale, ) -> Result<Self, CalendarError>
A version of Self::try_new
that uses custom data provided by a DataProvider
.
sourcepub fn week_of_month(
&self,
day_of_month: DayOfMonth,
iso_weekday: IsoWeekday,
) -> WeekOfMonth
pub fn week_of_month( &self, day_of_month: DayOfMonth, iso_weekday: IsoWeekday, ) -> WeekOfMonth
Returns the week of month according to a calendar with min_week_days = 1.
This is different from what the UTS35 spec describes 1 but the latter is missing a month of week-of-month field so following the spec would result in inconsistencies (e.g. in the ISO calendar 2021-01-01 is the last week of December but ‘MMMMW’ would have it formatted as ‘week 5 of January’).
§Examples
use icu::calendar::types::{DayOfMonth, IsoWeekday, WeekOfMonth};
use icu::calendar::week::WeekCalculator;
let week_calculator =
WeekCalculator::try_new(&icu::locid::locale!("und-GB").into())
.expect("locale should be present");
// Wednesday the 10th is in week 2:
assert_eq!(
WeekOfMonth(2),
week_calculator.week_of_month(DayOfMonth(10), IsoWeekday::Wednesday)
);
sourcepub fn week_of_year(
&self,
day_of_year_info: DayOfYearInfo,
iso_weekday: IsoWeekday,
) -> Result<WeekOf, CalendarError>
pub fn week_of_year( &self, day_of_year_info: DayOfYearInfo, iso_weekday: IsoWeekday, ) -> Result<WeekOf, CalendarError>
Returns the week of year according to the weekday and DayOfYearInfo
.
§Examples
use icu::calendar::types::IsoWeekday;
use icu::calendar::week::{RelativeUnit, WeekCalculator, WeekOf};
use icu::calendar::Date;
let week_calculator =
WeekCalculator::try_new(&icu::locid::locale!("und-GB").into())
.expect("locale should be present");
let iso_date = Date::try_new_iso_date(2022, 8, 26).unwrap();
// Friday August 26 is in week 34 of year 2022:
assert_eq!(
WeekOf {
unit: RelativeUnit::Current,
week: 34
},
week_calculator
.week_of_year(iso_date.day_of_year_info(), IsoWeekday::Friday)
.unwrap()
);
sourcefn weekday_index(&self, weekday: IsoWeekday) -> i8
fn weekday_index(&self, weekday: IsoWeekday) -> i8
Returns the zero based index of weekday
vs this calendar’s start of week.
sourcepub fn weekend(&self) -> impl Iterator<Item = IsoWeekday>
pub fn weekend(&self) -> impl Iterator<Item = IsoWeekday>
Weekdays that are part of the ‘weekend’, for calendar purposes. Days may not be contiguous, and order is based off the first weekday.
Trait Implementations§
source§impl Clone for WeekCalculator
impl Clone for WeekCalculator
source§fn clone(&self) -> WeekCalculator
fn clone(&self) -> WeekCalculator
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for WeekCalculator
impl Debug for WeekCalculator
source§impl Default for WeekCalculator
impl Default for WeekCalculator
source§impl From<&WeekDataV1> for WeekCalculator
impl From<&WeekDataV1> for WeekCalculator
source§fn from(other: &WeekDataV1) -> Self
fn from(other: &WeekDataV1) -> Self
source§impl From<WeekDataV1> for WeekCalculator
impl From<WeekDataV1> for WeekCalculator
source§fn from(other: WeekDataV1) -> Self
fn from(other: WeekDataV1) -> Self
impl Copy for WeekCalculator
Auto Trait Implementations§
impl Freeze for WeekCalculator
impl RefUnwindSafe for WeekCalculator
impl Send for WeekCalculator
impl Sync for WeekCalculator
impl Unpin for WeekCalculator
impl UnwindSafe for WeekCalculator
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)