ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
Date.d.hpp
Go to the documentation of this file.
1#ifndef ICU4X_Date_D_HPP
2#define ICU4X_Date_D_HPP
3
4#include <stdio.h>
5#include <stdint.h>
6#include <stddef.h>
7#include <stdbool.h>
8#include <memory>
9#include <functional>
10#include <optional>
11#include <cstdlib>
12#include "diplomat_runtime.hpp"
13namespace icu4x {
14namespace capi { struct Calendar; }
15class Calendar;
16namespace capi { struct Date; }
17class Date;
18namespace capi { struct IsoDate; }
19class IsoDate;
21struct DateAddOptions;
23struct DateDuration;
24struct DateFields;
28class CalendarError;
30class Weekday;
31} // namespace icu4x
32
33
34
35namespace icu4x {
36namespace capi {
37 struct Date;
38} // namespace capi
39} // namespace
40
41namespace icu4x {
47class Date {
48public:
49
56 inline static icu4x::diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError> from_iso_in_calendar(int32_t iso_year, uint8_t iso_month, uint8_t iso_day, const icu4x::Calendar& calendar);
57
64
74 inline static icu4x::diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError> from_codes_in_calendar(std::string_view era_code, int32_t year, std::string_view month_code, uint8_t day, const icu4x::Calendar& calendar);
75
82
89
95 inline std::unique_ptr<icu4x::Date> to_calendar(const icu4x::Calendar& calendar) const;
96
102 inline std::unique_ptr<icu4x::IsoDate> to_iso() const;
103
109 inline int64_t to_rata_die() const;
110
116 inline uint16_t day_of_year() const;
117
123 inline uint8_t day_of_month() const;
124
135 [[deprecated("use `weekday`")]]
136 inline icu4x::Weekday day_of_week() const;
137
143 inline icu4x::Weekday weekday() const;
144
156 inline uint8_t ordinal_month() const;
157
168 inline std::string month_code() const;
169 template<typename W>
170 inline void month_code_write(W& writeable_output) const;
171
177 inline uint8_t month_number() const;
178
184 inline bool month_is_leap() const;
185
195 inline int32_t era_year_or_related_iso() const;
196
206 inline int32_t extended_year() const;
207
215 inline std::string era() const;
216 template<typename W>
217 inline void era_write(W& writeable_output) const;
218
224 inline uint8_t months_in_year() const;
225
231 inline uint8_t days_in_month() const;
232
238 inline uint16_t days_in_year() const;
239
245 inline bool is_in_leap_year() const;
246
252 inline std::unique_ptr<icu4x::Calendar> calendar() const;
253
260
267
268 inline const icu4x::capi::Date* AsFFI() const;
269 inline icu4x::capi::Date* AsFFI();
270 inline static const icu4x::Date* FromFFI(const icu4x::capi::Date* ptr);
271 inline static icu4x::Date* FromFFI(icu4x::capi::Date* ptr);
272 inline static void operator delete(void* ptr);
273private:
274 Date() = delete;
275 Date(const icu4x::Date&) = delete;
276 Date(icu4x::Date&&) noexcept = delete;
277 Date operator=(const icu4x::Date&) = delete;
278 Date operator=(icu4x::Date&&) noexcept = delete;
279 static void operator delete[](void*, size_t) = delete;
280};
281
282} // namespace
283#endif // ICU4X_Date_D_HPP
Definition CalendarDateAddError.d.hpp:32
Definition CalendarDateFromFieldsError.d.hpp:40
Definition CalendarError.d.hpp:32
Definition Calendar.d.hpp:34
Definition Date.d.hpp:47
icu4x::Weekday day_of_week() const
Definition Date.hpp:161
std::unique_ptr< icu4x::IsoDate > to_iso() const
Definition Date.hpp:141
void era_write(W &writeable_output) const
Definition Date.hpp:218
uint8_t days_in_month() const
Definition Date.hpp:229
int64_t to_rata_die() const
Definition Date.hpp:146
icu4x::diplomat::result< std::unique_ptr< icu4x::Date >, icu4x::CalendarDateAddError > try_add_with_options(icu4x::DateDuration duration, icu4x::DateAddOptions options) const
Definition Date.hpp:249
icu4x::Weekday weekday() const
Definition Date.hpp:166
static icu4x::diplomat::result< std::unique_ptr< icu4x::Date >, icu4x::CalendarError > from_codes_in_calendar(std::string_view era_code, int32_t year, std::string_view month_code, uint8_t day, const icu4x::Calendar &calendar)
Definition Date.hpp:114
std::string era() const
Definition Date.hpp:210
uint8_t month_number() const
Definition Date.hpp:190
uint8_t day_of_month() const
Definition Date.hpp:156
uint8_t months_in_year() const
Definition Date.hpp:224
static icu4x::diplomat::result< std::unique_ptr< icu4x::Date >, icu4x::CalendarError > from_rata_die(int64_t rd, const icu4x::Calendar &calendar)
Definition Date.hpp:123
static icu4x::diplomat::result< std::unique_ptr< icu4x::Date >, icu4x::CalendarError > from_iso_in_calendar(int32_t iso_year, uint8_t iso_month, uint8_t iso_day, const icu4x::Calendar &calendar)
Definition Date.hpp:99
bool month_is_leap() const
Definition Date.hpp:195
uint8_t ordinal_month() const
Definition Date.hpp:171
void month_code_write(W &writeable_output) const
Definition Date.hpp:184
std::unique_ptr< icu4x::Date > to_calendar(const icu4x::Calendar &calendar) const
Definition Date.hpp:135
uint16_t days_in_year() const
Definition Date.hpp:234
int32_t era_year_or_related_iso() const
Definition Date.hpp:200
int32_t extended_year() const
Definition Date.hpp:205
uint16_t day_of_year() const
Definition Date.hpp:151
static icu4x::diplomat::result< std::unique_ptr< icu4x::Date >, icu4x::Rfc9557ParseError > from_string(std::string_view v, const icu4x::Calendar &calendar)
Definition Date.hpp:129
std::unique_ptr< icu4x::Calendar > calendar() const
Definition Date.hpp:244
std::string month_code() const
Definition Date.hpp:176
static icu4x::diplomat::result< std::unique_ptr< icu4x::Date >, icu4x::CalendarDateFromFieldsError > from_fields_in_calendar(icu4x::DateFields fields, icu4x::DateFromFieldsOptions options, const icu4x::Calendar &calendar)
Definition Date.hpp:107
icu4x::diplomat::result< icu4x::DateDuration, icu4x::CalendarMismatchedCalendarError > try_until_with_options(const icu4x::Date &other, icu4x::DateDifferenceOptions options) const
Definition Date.hpp:256
bool is_in_leap_year() const
Definition Date.hpp:239
Definition IsoDate.d.hpp:44
Definition Rfc9557ParseError.d.hpp:33
Definition Weekday.d.hpp:35
Definition diplomat_runtime.hpp:166
Definition Bidi.d.hpp:13
Definition CalendarMismatchedCalendarError.d.hpp:26
Definition DateAddOptions.d.hpp:35
Definition DateDifferenceOptions.d.hpp:35
Definition DateDuration.d.hpp:39
Definition DateFields.d.hpp:35
Definition DateFromFieldsOptions.d.hpp:38