mirror of
https://github.com/Halofreak1990/XFXFramework
synced 2024-12-26 13:49:34 +01:00
135 lines
5.2 KiB
C++
135 lines
5.2 KiB
C++
/*****************************************************************************
|
|
* DateTime.h *
|
|
* *
|
|
* XFX System::DateTime structure definition file *
|
|
* Copyright (c) XFX Team. All Rights Reserved *
|
|
*****************************************************************************/
|
|
#ifndef _SYSTEM_DATETIME_
|
|
#define _SYSTEM_DATETIME_
|
|
|
|
#include "Globalization/Calendar.h"
|
|
#include "Globalization/Enums.h"
|
|
#include "Enums.h"
|
|
#include "Interfaces.h"
|
|
#include "Types.h"
|
|
|
|
using namespace System::Globalization;
|
|
|
|
namespace System
|
|
{
|
|
class String;
|
|
struct TimeSpan;
|
|
|
|
/**
|
|
* Represents an instant in time, typically expressed as a date and time of day.
|
|
*/
|
|
struct DateTime : IComparable<DateTime>, IEquatable<DateTime>, Object
|
|
{
|
|
private:
|
|
static const long long TicksMask;
|
|
static const long long KindMask;
|
|
static const int KindShift;
|
|
static const long long w32file_epoch;
|
|
static const long long MAX_VALUE_TICKS;
|
|
static const long long UnixEpoch;
|
|
long long encoded;
|
|
int AbsoluteDays(int year, int month, int day);
|
|
void InvalidTickValue(long long ticks);
|
|
DateTime Add(double value, int scale);
|
|
|
|
public:
|
|
DateTime Date() const;
|
|
int Day() const;
|
|
DayOfWeek_t DayOfWeek() const;
|
|
int DayOfYear() const;
|
|
int Hour() const;
|
|
DateTimeKind_t Kind() const;
|
|
int Millisecond() const;
|
|
int Minute() const;
|
|
int Month() const;
|
|
static DateTime Now();
|
|
int Second() const;
|
|
long long Ticks() const;
|
|
TimeSpan TimeOfDay() const;
|
|
static DateTime Today();
|
|
static DateTime UtcNow();
|
|
int Year() const;
|
|
static const DateTime MaxValue;
|
|
static const DateTime MinValue;
|
|
|
|
DateTime(int year, int month, int day);
|
|
DateTime(int year, int month, int day, Calendar calendar);
|
|
DateTime(int year, int month, int day, int hour, int minute, int second);
|
|
DateTime(int year, int month, int day, int hour, int minute, int second, DateTimeKind_t kind);
|
|
DateTime(int year, int month, int day, int hour, int minute, int second, Calendar calendar);
|
|
DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond);
|
|
DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, DateTimeKind_t kind);
|
|
DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, Calendar calendar);
|
|
DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, Calendar calendar, DateTimeKind_t kind);
|
|
DateTime(long long ticks);
|
|
DateTime(long long ticks, DateTimeKind_t kind);
|
|
DateTime(const DateTime &obj); //Copy constructor
|
|
|
|
DateTime Add(const TimeSpan value);
|
|
DateTime AddDays(double value);
|
|
DateTime AddHours(double value);
|
|
DateTime AddMilliseconds(double value);
|
|
DateTime AddMinutes(double value);
|
|
DateTime AddMonths(int months);
|
|
DateTime AddSeconds(double value);
|
|
DateTime AddTicks(long long value);
|
|
DateTime AddYears(int value);
|
|
static int Compare(const DateTime t1, const DateTime t2);
|
|
int CompareTo(const DateTime value) const;
|
|
static int DaysInMonth(int year, int month);
|
|
bool Equals(Object const * const obj) const;
|
|
bool Equals(const DateTime obj) const;
|
|
bool static Equals(const DateTime t1, const DateTime t2);
|
|
static DateTime FromFileTime(long long fileTime);
|
|
static DateTime FromFileTimeUtc(long long fileTime);
|
|
static DateTime FromOADate(double d);
|
|
String *GetDateTimeFormats();
|
|
String *GetDateTimeFormats(char format);
|
|
String *GetDateTimeFormats(char format, IFormatProvider * const formatProvider);
|
|
String *GetDateTimeFormats(IFormatProvider * const formatProvider);
|
|
int GetHashCode() const;
|
|
static const Type& GetType();
|
|
bool IsDaylighSavingTime();
|
|
static bool IsLeapYear(int year);
|
|
static DateTime Parse(String& s);
|
|
static DateTime Parse(String& s, IFormatProvider * const formatProvider);
|
|
static DateTime Parse(String& s, IFormatProvider * const formatProvider, DateTimeStyles_t styles);
|
|
static DateTime ParseExact(String& s, String& format, IFormatProvider * const formatProvider);
|
|
static DateTime ParseExact(String& s, String& format, IFormatProvider * const formatProvider, DateTimeStyles_t style);
|
|
static DateTime ParseExact(String& s, String formats[], IFormatProvider * const formatProvider, DateTimeStyles_t style);
|
|
static DateTime ParseExact(DateTime value, DateTimeKind kind);
|
|
TimeSpan Subtract(const DateTime value);
|
|
DateTime Subtract(const TimeSpan value);
|
|
long long ToFileTime();
|
|
long long ToFileTimeUtc();
|
|
DateTime ToLocalTime();
|
|
String ToLongDateString();
|
|
String ToLongTimeString();
|
|
double ToOADate();
|
|
String ToShortDateString();
|
|
String ToShortTimeString();
|
|
const String ToString() const;
|
|
String ToString(IFormatProvider * const provider);
|
|
String ToString(const String& format);
|
|
String ToString(const String& format, IFormatProvider * const provider);
|
|
DateTime ToUniversalTime();
|
|
|
|
DateTime operator +(const TimeSpan other);
|
|
bool operator==(const DateTime& other) const;
|
|
bool operator >(const DateTime other) const;
|
|
bool operator>=(const DateTime other) const;
|
|
bool operator!=(const DateTime& other) const;
|
|
bool operator <(const DateTime other) const;
|
|
bool operator<=(const DateTime other) const;
|
|
TimeSpan operator-(const DateTime other);
|
|
DateTime operator-(const TimeSpan t);
|
|
};
|
|
}
|
|
|
|
#endif //_SYSTEM_DATETIME_
|