5#include <system/globalization/calendar.h> 
    6#include <system/iformatprovider.h> 
    7#include <system/icloneable.h> 
    8#include <system/nullable.h> 
    9#include <system/globalization/details/date_time_format_data_ptr.h> 
   10#include <system/globalization/details/date_time_format_flags.h> 
   11#include <system/globalization/details/culture_data_ptr.h> 
   12#include <system/details/spin_lock.h> 
   13#include <system/details/lazy.h> 
   15namespace System { 
namespace Globalization {
 
   18    class DateTimeFormatInfoReader; 
 
   19    namespace DateTimeTokenization { 
class Tokenizer; }
 
   39    friend class Details::DateTimeTokenization::Tokenizer;
 
   62    ASPOSECPP_SHARED_API 
bool get_IsReadOnly() const;
 
   66    ASPOSECPP_SHARED_API 
String get_ShortDatePattern() const;
 
   69    ASPOSECPP_SHARED_API 
void set_ShortDatePattern(const 
String& value);
 
   73    ASPOSECPP_SHARED_API 
String get_ShortTimePattern() const;
 
   76    ASPOSECPP_SHARED_API 
void set_ShortTimePattern(const 
String& value);
 
   80    ASPOSECPP_SHARED_API 
String get_LongDatePattern() const;
 
   83    ASPOSECPP_SHARED_API 
void set_LongDatePattern(const 
String& value);
 
   87    ASPOSECPP_SHARED_API 
String get_LongTimePattern() const;
 
   90    ASPOSECPP_SHARED_API 
void set_LongTimePattern(const 
String& value);
 
   94    ASPOSECPP_SHARED_API 
String get_DateSeparator() const;
 
   97    ASPOSECPP_SHARED_API 
void set_DateSeparator(const 
String& value);
 
  101    ASPOSECPP_SHARED_API 
String get_TimeSeparator() const;
 
  104    ASPOSECPP_SHARED_API 
void set_TimeSeparator(const 
String& value);
 
  108    ASPOSECPP_SHARED_API 
String get_PMDesignator() const;
 
  111    ASPOSECPP_SHARED_API 
void set_PMDesignator(const 
String& value);
 
  115    ASPOSECPP_SHARED_API 
String get_AMDesignator() const;
 
  118    ASPOSECPP_SHARED_API 
void set_AMDesignator(const 
String& value);
 
  125    ASPOSECPP_SHARED_API 
void set_AbbreviatedDayNames(const 
ArrayPtr<
String>& value);
 
  132    ASPOSECPP_SHARED_API 
void set_AbbreviatedMonthGenitiveNames(const 
ArrayPtr<
String>& value);
 
  139    ASPOSECPP_SHARED_API 
void set_AbbreviatedMonthNames(const 
ArrayPtr<
String>& value);
 
  164    ASPOSECPP_SHARED_API 
DayOfWeek get_FirstDayOfWeek() const;
 
  167    ASPOSECPP_SHARED_API 
void set_FirstDayOfWeek(
DayOfWeek value);
 
  171    ASPOSECPP_SHARED_API 
String get_FullDateTimePattern() const;
 
  174    ASPOSECPP_SHARED_API 
void set_FullDateTimePattern(const 
String& value);
 
  178    ASPOSECPP_SHARED_API 
String get_MonthDayPattern() const;
 
  181    ASPOSECPP_SHARED_API 
void set_MonthDayPattern(const 
String& value);
 
  199    ASPOSECPP_SHARED_API 
String get_RFC1123Pattern() const;
 
  210    ASPOSECPP_SHARED_API 
String get_SortableDateTimePattern() const;
 
  214    ASPOSECPP_SHARED_API 
String get_UniversalSortableDateTimePattern() const;
 
  218    ASPOSECPP_SHARED_API 
String get_YearMonthPattern() const;
 
  221    ASPOSECPP_SHARED_API 
void set_YearMonthPattern(const 
String& value);
 
  231    ASPOSECPP_SHARED_API 
String GetAbbreviatedEraName(
int era) const;
 
  236    ASPOSECPP_SHARED_API 
String GetAbbreviatedMonthName(
int month) const;
 
  246    ASPOSECPP_SHARED_API 
int GetEra(const 
String& era_name) const;
 
  251    ASPOSECPP_SHARED_API 
String GetEraName(
int era) const;
 
  256    ASPOSECPP_SHARED_API 
String GetMonthName(
int month) const;
 
  261    ASPOSECPP_SHARED_API 
String GetMonthGenitiveName(
int month) const;
 
  266    ASPOSECPP_SHARED_API 
String GetLeapYearMonthName(
int month) const;
 
  270    ASPOSECPP_SHARED_API 
String get_NativeCalendarName() const;
 
  278    ASPOSECPP_SHARED_API 
ArrayPtr<
String> GetAllDateTimePatterns(
char16_t format) const;
 
  281    ASPOSECPP_SHARED_API 
void SetAllDateTimePatterns(const 
ArrayPtr<
String>& patterns, 
char16_t format);
 
  309    friend class Details::DateTimeFormatInfoReader;
 
  311    using Lock = 
System::Details::OptionalSpinLock;
 
  312    using LockContext = std::lock_guard<Lock>;
 
  314    using Tokenizer = Details::DateTimeTokenization::Tokenizer;
 
  317    const 
bool m_is_read_only;
 
  319    const Details::CultureDataPtr m_culture_data;
 
  321    Details::DateTimeFormatDataPtr m_data;
 
  325    mutable Lock m_lockable;
 
  327    const 
String m_culture_name;
 
  330    mutable 
System::Details::Lazy<std::shared_ptr<Tokenizer>> m_tokenizer;
 
  341    mutable 
String m_am_designator;
 
  343    mutable 
String m_date_separator;
 
  349    mutable 
String m_full_date_time_pattern;
 
  351    mutable 
String m_long_date_pattern;
 
  355    mutable 
String m_long_time_pattern;
 
  359    mutable 
String m_month_day_pattern;
 
  365    mutable 
String m_pm_designator;
 
  367    mutable 
String m_short_date_pattern;
 
  373    mutable 
String m_short_time_pattern;
 
  377    mutable 
String m_time_separator;
 
  381    mutable 
String m_year_month_pattern;
 
  396    mutable 
String m_native_calendar_name;
 
  398    mutable 
String m_decimal_separator;
 
  400    mutable 
Nullable<Details::DateTimeFormatFlags> m_format_flags;
 
  405    mutable 
String m_general_long_time_pattern;
 
  407    mutable 
String m_general_short_time_pattern;
 
  409    mutable 
String m_date_time_offset_pattern;
 
  412    static const 
String RFC1123Pattern;
 
  413    static const 
String SortablePattern;
 
  414    static const 
String UniversalSortablePattern;
 
  415    static const 
String RoundtripPattern;
 
  416    static const 
String RoundtripUnfixedPattern;
 
  417    static const 
String ISO8601Pattern;
 
  420    static const 
String StandardFormats;
 
  424        bool is_read_only = false, 
bool is_preload_all_data = false);
 
  426        CODEPORTING_ARGS(const 
DateTimeFormatInfo ©, 
bool is_read_only = false, 
bool is_preload_all_data = false),
 
  427        CODEPORTING_ARGS(copy, is_read_only, is_preload_all_data)
 
  436        bool is_read_only = false, 
bool is_preload_all_data = false);
 
  438        CODEPORTING_ARGS(const Details::CultureDataPtr& culture_data, const 
CalendarPtr& calendar, 
bool is_read_only = false, 
bool is_preload_all_data = false),
 
  439        CODEPORTING_ARGS(culture_data, calendar, is_read_only, is_preload_all_data)
 
  443    void PreloadAllData();
 
  445    void VerifyWritable() const;
 
  447    Lock& Lockable()
 const { 
return m_lockable; }
 
  449    Details::DateTimeFormatData& Data() 
const;
 
  451    void OnChangeProperty(
const LockContext&, 
const char16_t* property_name);
 
  453    const Tokenizer& GetTokenizer(
const Details::DateTimeFormatInfoReader& dtfi_reader) 
const;
 
  455    void ResetTokenizer(
const LockContext&);
 
  458    const String& LongTimePattern(
const LockContext&) 
const;
 
  459    const String& MonthDayPattern(
const LockContext&) 
const;
 
  460    const String& PMDesignator(
const LockContext&) 
const;
 
  461    const String& ShortDatePattern(
const LockContext&) 
const;
 
  462    const String& ShortTimePattern(
const LockContext&) 
const;
 
  463    const String& TimeSeparator(
const LockContext&) 
const;
 
  464    const String& YearMonthPattern(
const LockContext&) 
const;
 
  471    const String& LongDatePattern(
const LockContext&) 
const;
 
  472    const String& FullDateTimePattern(
const LockContext&) 
const;
 
  473    DayOfWeek FirstDayOfWeek(
const LockContext&) 
const;
 
  474    const ArrayPtr<String>& AbbreviatedMonthGenitiveNames(
const LockContext&) 
const;
 
  476    const String& AMDesignator(
const LockContext&) 
const;
 
  478    const String& DateSeparator(
const LockContext&) 
const;
 
  488    const ArrayPtr<String>& AbbreviatedEnglishEraNames(
const LockContext&) 
const;
 
  489    const String& NativeCalendarName(
const LockContext&) 
const;
 
  490    const String& DecimalSeparator(
const LockContext&) 
const;
 
  492    const String& CultureName(
const LockContext&) 
const;
 
  494    const String& GeneralLongTimePattern(
const LockContext&) 
const;
 
  495    const String& GeneralShortTimePattern(
const LockContext&) 
const;
 
  496    const String& DateTimeOffsetPattern(
const LockContext&) 
const;
 
  504    ArrayPtr<String> AllDateTimePatterns(
char16_t format, 
const LockContext&) 
const;
 
  506    const String& GetAbbreviatedDayName(
DayOfWeek day_of_week, 
const LockContext&) 
const;
 
  507    const String& GetAbbreviatedEraName(
int era, 
const LockContext&) 
const;
 
  508    const String& GetAbbreviatedMonthName(
int month, 
const LockContext&) 
const;
 
  509    const String& GetDayName(
DayOfWeek day_of_week, 
const LockContext&) 
const;
 
  510    int GetEra(
const String& era_name, 
const LockContext&) 
const;
 
  511    const String& GetEraName(
int era, 
const LockContext&) 
const;
 
  512    const String& GetMonthName(
int month, 
const LockContext&) 
const;
 
  513    const String& GetMonthGenitiveName(
int month, 
const LockContext&) 
const;
 
  514    const String& GetLeapYearMonthName(
int month, 
const LockContext&) 
const;
 
  515    const String& GetShortestDayName(
DayOfWeek day_of_week, 
const LockContext&) 
const;
 
Calendar which defines how the dates are handled, calculated, formatted, etc. Setter operations are o...
Definition: calendar.h:38
 
Collection of culture-specific values and algorithms. Setter operations are only enabled on non-read-...
Definition: culture_info.h:32
 
Defies a method that enables object cloning - creating a copy of an object. Objects of this class sho...
Definition: icloneable.h:16
 
Forward declaration.
Definition: nullable.h:75
 
Base class that enables using methods available for System.Object class in C#. All non-trivial classe...
Definition: object.h:62
 
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: smart_ptr.h:180
 
String class used across the library. Is a substitute for C# System.String when translating code....
Definition: string.h:122
 
Represents a particular type and provides information about it.
Definition: type_info.h:109
 
DateTimeFormatFlags
Bit flags, used in parsing/formatting.
Definition: date_time_format_flags.h:11
 
SharedPtr< DateTimeFormatInfo > DateTimeFormatInfoPtr
DateTimeFormatInfo info pointer.
Definition: date_time_format_info.h:24
 
CalendarWeekRule
How to determine first week of the year.
Definition: calendar_week_rule.h:11
 
Definition: db_command.h:9
 
DayOfWeek
Enumeration that represents a day of week.
Definition: day_of_week.h:11