タイマーというか時間関係。
std.timeがあまりにもあれだったんで置き換え。
class TimeException: etc.negui.system.exception.NeGuiException;
class FileDateTimeException: etc.negui.system.time.TimeException;
struct FILEDATETIME;
static SYSTEMDATETIME toSystemDateTime(ref const FILEDATETIME FileDateTime
);
const SYSTEMDATETIME toSystemDateTime();
const bool opEquals(ref const FILEDATETIME FileDateTime
);
const int opCmp(ref const FILEDATETIME FileDateTime
);
class SystemDateTimeException: etc.negui.system.time.TimeException;
struct SYSTEMDATETIME;
const FILEDATETIME toFileDateTime(ref const SYSTEMDATETIME SystemDateTime
);
const FILEDATETIME toFileDateTime();
static SYSTEMDATETIME localTime();
const bool opEquals(ref const SYSTEMDATETIME SystemDateTime
);
const int opCmp(ref const SYSTEMDATETIME SystemDateTime
);
const Text toText();
const string toString();
string toString();
enum RANGE;
最小/最大値
MONTH_MIN
MONTH_MAX
DAY_MIN
DAY_MAX
WEEK_MIN
WEEK_MAX
HOUR_MIN
HOUR_MAX
MINUTE_MIN
MINUTE_MAX
SECOND_MIN
SECOND_MAX
MS_MIN
MS_MAX
static bool isYear(WORD Year
);
static bool isLeapYear(WORD Year
);
enum WEEK;
曜日。
SUNDAY
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
static WEEK getWeekDay(in WORD Year
, in WORD Month
, in WORD Day
);
曜日の取得。
- See Also:
- ウィキペディア, http://ja.wikipedia.org/wiki/%E3%83%84%E3%82%A7%E3%83%A9%E3%83%BC%E3%81%AE%E5%85%AC%E5%BC%8F
- In:
-
isYear(Year
) && isMonth(Month
) && isDay(Day
)
static WORD getMonthDay(WORD Year
, WORD Month
);
月の日数。
- In:
-
isYear(Year
) && isMonth(Month
)
static WORD nextMonth(WORD NowMonth
);
次の月を取得。
- Params:
-
- WORD NowMonth
- 現在の月。
static WORD prevMonth(WORD NowMonth
);
前の月を取得。
- Params:
-
- WORD NowMonth
- 現在の月。
static WORD nextDay(WORD Year
, WORD Month
, WORD Day
);
次の日を取得。
- Params:
-
- WORD Year
- 現在の年。
- WORD Month
- 現在の月。
- WORD Day
- 現在の日。
- In:
-
isYear(Year
) && isMonth(Month
) && isDay(Day
)
static WORD prevDay(WORD Year
, WORD Month
, WORD Day
);
前の日を取得。
- Params:
-
- WORD Year
- 現在の年。
- WORD Month
- 現在の月。
- WORD Day
- 現在の日。
- In:
-
isYear(Year
) && isMonth(Month
) && isDay(Day
)
class DateTimeException: etc.negui.system.time.SystemDateTimeException;
class DateTime: etc.negui.system.text.IText;
日時を扱う専用クラス。
ネムぃに特化。
- BUGS:
- 調子乗りすぎた。
もうしんどい、いやや。
- History:
- 1.100:
[S] 全面修正。
1.00β19:
[S] Timeを継承。
protected const Text FormatSingle(in Text FormatText
, in Text TargetToken
, int Width
, int Value
);
protected const Text FormatDate(in Text FormatText
, MASK Mask
);
protected static Throwable TogetherAssignment(ref SYSTEMDATETIME SystemDateTime
);
protected void Initialize(MODE Mode
);
const Text toText();
- History:
- 1.100:
[P] maskがMASK.ALLであればSYSTEMDATETIME.toTextと等価。
this(MODE Mode
= (MODE).FLEXIBLE);
現在時刻からDateTimeの生成。
- Params:
-
- MODE Mode
- 日時設定時の挙動。
this(MODE Mode
, ref const SYSTEMDATETIME SystemDateTime
);
指定日時からDateTimeの生成。
- Params:
-
- MODE Mode
- 日時設定時の挙動。
- SYSTEMDATETIME SystemDateTime
- 設定する日時情報。
- Throws:
- ModeがMODE.STRICTでSystemDateTimeが不正な場合にDateTimeException。
this(MODE Mode
, ref const FILEDATETIME FileDateTime
);
指定日時からDateTimeの生成。
- Params:
-
- MODE Mode
- 日時設定時の挙動。
- FILEDATETIME FileDateTime
- 設定する日時情報。
- Throws:
- ModeがMODE.STRICTでFileDateTimeが不正な場合にDateTimeException。
this(MODE Mode
, WORD Year
, WORD Month
= (RANGE).MONTH_MIN, WORD Day
= (RANGE).DAY_MIN, WORD Hour
= (RANGE).HOUR_MIN, WORD Minute
= (RANGE).MINUTE_MIN, WORD Second
= (RANGE).SECOND_MIN, WORD Ms
= (RANGE).MS_MIN);
指定日時からDateTimeの生成。
- Params:
-
- MODE Mode
- 日時設定時の挙動。
- WORD Year
- 年。
- WORD Month
- 月。
- WORD Day
- 日。
- WORD Hour
- 時。
- WORD Minute
- 分。
- WORD Second
- 秒。
- WORD Ms
- ミリ秒。
- Throws:
- ModeがMODE.STRICTで引数が不正な場合にDateTimeException。
this(MODE Mode
, in Text Value
);
文字列からDateTimeの生成。
- Params:
-
- MODE Mode
- 日時設定時の挙動。
- Text Value
- 日時情報に変換可能な文字列。
YYYY-MM-DDThh:mm:ss.MS形式(0埋め不要)で指定。
年以外は順々に省略可能。
- Throws:
- Valueを分解できない場合にDateTimeException。
ModeがMODE.STRICTで引数が不正な場合にDateTimeException。
Text format;
日時書式。
変換前 |
変換後 |
[Y] |
12345 -> 12345, 1234 -> 1234, 123 -> 123, 12 -> 12, 1 -> 1 |
[YY] |
12345 -> 45, 1234 -> 34, 123 -> 23, 12 -> 12, 1 -> 01 |
[YYYY] |
12345 -> 2345, 1234 -> 1234, 123 -> 0123, 12 -> 0012, 1 -> 0001 |
[@M] |
DateTime.monthName() |
[M] |
1 -> 1, 9 -> 9 10 -> 10 |
[MM] |
1 -> 01, 9 -> 09, 10 -> 10 |
[D] |
12345 -> 12345, 1234 -> 1234, 123 -> 123, 12 -> 12, 1 -> 1 |
[DD] |
12345 -> 45, 1234 -> 34, 123 -> 23, 12 -> 12, 1 -> 01 |
[@W] |
DateTime.weekName() |
[W] |
0 -> 0, 3 -> 3, 6 -> 6 |
[h] |
12345 -> 12345, 1234 -> 1234, 123 -> 123, 12 -> 12, 1 -> 1 |
[hh] |
12345 -> 45, 1234 -> 34, 123 -> 23, 12 -> 12, 1 -> 01 |
[m] |
12345 -> 12345, 1234 -> 1234, 123 -> 123, 12 -> 12, 1 -> 1 |
[mm] |
12345 -> 45, 1234 -> 34, 123 -> 23, 12 -> 12, 1 -> 01 |
[s] |
12345 -> 12345, 1234 -> 1234, 123 -> 123, 12 -> 12, 1 -> 1 |
[ss] |
12345 -> 45, 1234 -> 34, 123 -> 23, 12 -> 12, 1 -> 01 |
[ms] |
12345 -> 12345, 1234 -> 1234, 123 -> 123, 12 -> 12, 1 -> 1 |
[MS] |
12345 -> 345, 1234 -> 234, 123 -> 123, 12 -> 012, 1 -> 001 |
Text[12u] months;
Text[7u] weeks;
const const(Text) monthName();
const const(Text) weekName();
enum MASK;
文字列変換時の変換フラグ。
該当しない箇所は文字列変換されない。
YEAR
MONTH
DAY
WEEK
HOUR
MINUTE
SECOND
MS
DATE
DATES
TIME
TIMES
ALL
MASK mask;
enum MODE;
日時設定時の動作。
FLEXIBLE
STRICT
MODE mode;
protected void ChangeWeek();
const SYSTEMDATETIME.WEEK week();
struct TIMESTAMP;
enum FLAG;
FLAG flags;
DateTime create;
DateTime access;
DateTime update;
const Text toText();