#[non_exhaustive]
pub struct WeekCalculator { pub first_weekday: IsoWeekday, pub min_week_days: u8, }
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
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional 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.

Implementations

Creates a new WeekCalculator from locale data.

📚 Help choosing a constructor

⚠️ The bounds on this function may change over time, including in SemVer minor releases.

Creates a new instance using an AnyProvider.

For details on the behavior of this function, see: Self::try_new_unstable

📚 Help choosing a constructor

Enabled with the "serde" feature.

Creates a new instance using a BufferProvider.

For details on the behavior of this function, see: Self::try_new_unstable

📚 Help choosing a constructor

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_unstable(
    &icu_testdata::unstable(),
    &icu_locid::locale!("en-GB").into(),
)
.expect("Data exists");

// Wednesday the 10th is in week 2:
assert_eq!(
    WeekOfMonth(2),
    week_calculator.week_of_month(DayOfMonth(10), IsoWeekday::Wednesday)
);

Returns the week of year according to the weekday and DayOfYearInfo.

Examples
use icu_calendar::types::{DayOfMonth, IsoWeekday};
use icu_calendar::week::{RelativeUnit, WeekCalculator, WeekOf};
use icu_calendar::Date;

let week_calculator = WeekCalculator::try_new_unstable(
    &icu_testdata::unstable(),
    &icu_locid::locale!("en-GB").into(),
)
.expect("Data exists");

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()
);

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Converts to this type from the input type.

Converts to this type from the input type.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.