TimeUtils/advanced.mq5
Nique_372 5621026870
2026-08-04 22:56:59 -05:00

544 lines
28 KiB
MQL5

//+------------------------------------------------------------------+
//| advanced.mq5 |
//| Copyright © 2026, Amr Ali |
//| https://www.mql5.com/en/users/amrali |
//+------------------------------------------------------------------+
// First day of the week used by all week-related functions.
// Optionally, override the default before including this header:
//
// #define TIMEUTILS_FIRST_DAY_OF_WEEK SUNDAY
// #include "TimeUtils.mqh"
//
// Valid values: SUNDAY or MONDAY (default: MONDAY).
#include "TimeUtils.mqh"
int counter = 0;
#define PRINT(A) Print((string)++counter + ". " + #A + " = ", (A))
void OnStart()
{
// The time to process
const datetime t = TimeLocal();
PRINT( TimeToString(t, TIME_DATE|TIME_SECONDS) ); // MQL's native TimeToString()
PRINT( CTimeUtils::t2s( t, TIME_DATE|TIME_SECONDS) ); // Formats time with the weekday name
//+==================================================================+
//| Break datetime To Components |
//+==================================================================+
MqlDateTime dt[1] = {};
PRINT( CTimeUtils::TimeToStructFast(t, dt[0]) );
ArrayPrint(dt);
//####################################################################
//# #
//# Construction #
//# #
//####################################################################
PRINT( CTimeUtils::DateFrom(2022, 03, 25) );
PRINT( CTimeUtils::StructToTimeFast(dt[0]) );
//####################################################################
//# #
//# Calendar Components #
//# #
//####################################################################
//+==================================================================+
//| Extract Components of datetime: Sunday, yyyy.mm.dd hh:mm:ss |
//| Get() Units |
//+==================================================================+
PRINT( CTimeUtils::Second(t) );
PRINT( CTimeUtils::Minute(t) );
PRINT( CTimeUtils::Hour(t) );
PRINT( CTimeUtils::Day(t) );
PRINT( CTimeUtils::Month(t) );
PRINT( CTimeUtils::Year(t) );
PRINT( CTimeUtils::DateOnly(t) );
PRINT( CTimeUtils::TimeOnly(t) );
//+==================================================================+
//| CTimeUtils::Day() Number |
//+==================================================================+
PRINT( CTimeUtils::DayOfWeek(t) );
PRINT( CTimeUtils::DayOfYear(t) );
//+==================================================================+
//| Week() Number |
//+==================================================================+
PRINT( CTimeUtils::WeekOfMonth(t) );
PRINT( CTimeUtils::WeekOfYear(t) );
//+==================================================================+
//| Epoch-Based Indices |
//+==================================================================+
PRINT( CTimeUtils::MinuteIndex(t) );
PRINT( CTimeUtils::HourIndex(t) );
PRINT( CTimeUtils::DayIndex(t) );
PRINT( CTimeUtils::WeekIndex(t) );
PRINT( CTimeUtils::MonthIndex(t) );
PRINT( CTimeUtils::QuarterIndex(t) );
PRINT( CTimeUtils::YearIndex(t) );
//+==================================================================+
//| CTimeUtils::Quarter() Number |
//+==================================================================+
PRINT( CTimeUtils::Quarter(t) );
//+==================================================================+
//| HourOf() Units |
//+==================================================================+
PRINT( CTimeUtils::HourOfWeek(t) );
PRINT( CTimeUtils::HourOfMonth(t) );
PRINT( CTimeUtils::HourOfQuarter(t) );
PRINT( CTimeUtils::HourOfYear(t) );
//+==================================================================+
//| MinuteOf() Units |
//+==================================================================+
PRINT( CTimeUtils::MinuteOfDay(t) );
PRINT( CTimeUtils::MinuteOfWeek(t) );
PRINT( CTimeUtils::MinuteOfMonth(t) );
PRINT( CTimeUtils::MinuteOfQuarter(t) );
PRINT( CTimeUtils::MinuteOfYear(t) );
//+==================================================================+
//| SecsElapsedOf() Units |
//+==================================================================+
PRINT( CTimeUtils::SecsElapsedOfMinute(t) );
PRINT( CTimeUtils::SecsElapsedOfHour(t) );
PRINT( CTimeUtils::SecsElapsedOfDay(t) );
PRINT( CTimeUtils::SecsElapsedOfWeek(t) );
PRINT( CTimeUtils::SecsElapsedOfMonth(t) );
PRINT( CTimeUtils::SecsElapsedOfQuarter(t) );
PRINT( CTimeUtils::SecsElapsedOfYear(t) );
PRINT( CTimeUtils::SecsElapsedOfEpoch(t) );
//####################################################################
//# #
//# Adjusters / Navigation #
//# #
//####################################################################
//+==================================================================+
//| StartOf() Units |
//+==================================================================+
PRINT( CTimeUtils::StartOfMinute(t) );
PRINT( CTimeUtils::StartOfHour(t) );
PRINT( CTimeUtils::StartOfDay(t) );
PRINT( CTimeUtils::StartOfWeek(t) );
PRINT( CTimeUtils::StartOfMonth(t) );
PRINT( CTimeUtils::StartOfQuarter(t) );
PRINT( CTimeUtils::StartOfYear(t) );
PRINT( CTimeUtils::StartOfToday() );
PRINT( CTimeUtils::StartOfTomorrow() );
PRINT( CTimeUtils::StartOfYesterday() );
//+==================================================================+
//| EndOf() Units |
//+==================================================================+
PRINT( CTimeUtils::EndOfMinute(t) );
PRINT( CTimeUtils::EndOfHour(t) );
PRINT( CTimeUtils::EndOfDay(t) );
PRINT( CTimeUtils::EndOfWeek(t) );
PRINT( CTimeUtils::EndOfMonth(t) );
PRINT( CTimeUtils::EndOfQuarter(t) );
PRINT( CTimeUtils::EndOfYear(t) );
PRINT( CTimeUtils::EndOfToday() );
PRINT( CTimeUtils::EndOfTomorrow() );
PRINT( CTimeUtils::EndOfYesterday() );
//+==================================================================+
//| LastDayOf() Units |
//+==================================================================+
PRINT( CTimeUtils::LastDayOfWeek(t) );
PRINT( CTimeUtils::LastDayOfMonth(t) );
PRINT( CTimeUtils::LastDayOfQuarter(t) );
PRINT( CTimeUtils::LastDayOfYear(t) );
//+==================================================================+
//| RoundTo() / Nearest() Units |
//+==================================================================+
PRINT( CTimeUtils::RoundToMinute(t) );
PRINT( CTimeUtils::RoundToHour(t) );
PRINT( CTimeUtils::RoundToDay(t) );
PRINT( CTimeUtils::RoundToWeek(t) );
//+==================================================================+
//| CeilTo() / Next() Units |
//+==================================================================+
PRINT( CTimeUtils::CeilToMinute(t) );
PRINT( CTimeUtils::CeilToHour(t) );
PRINT( CTimeUtils::CeilToDay(t) );
PRINT( CTimeUtils::CeilToWeek(t) );
//+==================================================================+
//| Next() Weekday |
//+==================================================================+
PRINT( CTimeUtils::NextSunday(t) );
PRINT( CTimeUtils::NextMonday(t) );
PRINT( CTimeUtils::NextTuesday(t) );
PRINT( CTimeUtils::NextWednesday(t) );
PRINT( CTimeUtils::NextThursday(t) );
PRINT( CTimeUtils::NextFriday(t) );
PRINT( CTimeUtils::NextSaturday(t) );
//+==================================================================+
//| Previous() Weekday |
//+==================================================================+
PRINT( CTimeUtils::PreviousSunday(t) );
PRINT( CTimeUtils::PreviousMonday(t) );
PRINT( CTimeUtils::PreviousTuesday(t) );
PRINT( CTimeUtils::PreviousWednesday(t) );
PRINT( CTimeUtils::PreviousThursday(t) );
PRINT( CTimeUtils::PreviousFriday(t) );
PRINT( CTimeUtils::PreviousSaturday(t) );
//+==================================================================+
//| Nth() Weekday Of The Month |
//+==================================================================+
PRINT( CTimeUtils::FirstWeekdayOfMonth(t, SUNDAY) );
PRINT( CTimeUtils::LastWeekdayOfMonth(t, SUNDAY) );
//+==================================================================+
//| WithXxx() / Replace() Units |
//+==================================================================+
PRINT( CTimeUtils::WithSecond(t, 05) );
PRINT( CTimeUtils::WithMinute(t, 30) );
PRINT( CTimeUtils::WithHour(t, 10) );
PRINT( CTimeUtils::WithDay(t, 26) );
PRINT( CTimeUtils::WithMonth(t, 2) );
PRINT( CTimeUtils::WithYear(t, 2024) );
PRINT( CTimeUtils::WithDayOfWeek(t, FRIDAY) );
PRINT( CTimeUtils::WithTime(t, 10, 30, 05) );
PRINT( CTimeUtils::WithDate(t, 2024, 2, 26) );
//####################################################################
//# #
//# Addition and Subtraction #
//# #
//####################################################################
//+==================================================================+
//| Add() Units |
//+==================================================================+
PRINT( CTimeUtils::AddSeconds(t, 30) );
PRINT( CTimeUtils::AddMinutes(t, 30) );
PRINT( CTimeUtils::AddHours(t, 2) );
PRINT( CTimeUtils::AddDays(t, 10) );
PRINT( CTimeUtils::AddBusinessDays(t, 10) );
PRINT( CTimeUtils::AddWeeks(t, 4) );
PRINT( CTimeUtils::AddMonths(t, 2) );
PRINT( CTimeUtils::AddQuarters(t, 3) );
PRINT( CTimeUtils::AddYears(t, 5) );
//+==================================================================+
//| Sub() Units |
//+==================================================================+
PRINT( CTimeUtils::SubSeconds(t, 30) );
PRINT( CTimeUtils::SubMinutes(t, 30) );
PRINT( CTimeUtils::SubHours(t, 2) );
PRINT( CTimeUtils::SubDays(t, 10) );
PRINT( CTimeUtils::SubBusinessDays(t, 10) );
PRINT( CTimeUtils::SubWeeks(t, 4) );
PRINT( CTimeUtils::SubMonths(t, 2) );
PRINT( CTimeUtils::SubQuarters(t, 3) );
PRINT( CTimeUtils::SubYears(t, 5) );
//####################################################################
//# #
//# Difference #
//# #
//####################################################################
//+==================================================================+
//| DifferenceIn() Units |
//+==================================================================+
PRINT( CTimeUtils::DifferenceInCalendarDays( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) );
PRINT( CTimeUtils::DifferenceInCalendarWeeks( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) );
PRINT( CTimeUtils::DifferenceInCalendarMonths( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) );
PRINT( CTimeUtils::DifferenceInCalendarQuarters( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) );
PRINT( CTimeUtils::DifferenceInCalendarYears( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) );
PRINT( CTimeUtils::DifferenceInSeconds( t, CTimeUtils::EndOfDay(t)) );
PRINT( CTimeUtils::DifferenceInMinutes( t, CTimeUtils::EndOfDay(t)) );
PRINT( CTimeUtils::DifferenceInHours( t, CTimeUtils::EndOfDay(t)) );
PRINT( CTimeUtils::DifferenceInDays( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) );
PRINT( CTimeUtils::DifferenceInWeeks( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) );
PRINT( CTimeUtils::DifferenceInMonths( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) );
PRINT( CTimeUtils::DifferenceInQuarters( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) );
PRINT( CTimeUtils::DifferenceInYears( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) );
PRINT( CTimeUtils::DifferenceInBusinessDays( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) );
PRINT( CTimeUtils::DifferenceInWeekendDays( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) );
MqlDateTime diff;
PRINT( CTimeUtils::CalendarDifference( t, D'2035.10.9', diff ) );
PRINT( CTimeUtils::CalendarDifferenceToString( t, D'2035.10.9' ) );
PRINT( CTimeUtils::AddPeriod( t, diff ) );
PRINT( CTimeUtils::SubPeriod( D'2035.10.9', diff ) );
//####################################################################
//# #
//# Comparison and Checks #
//# #
//####################################################################
//+==================================================================+
//| Is() Checks |
//+==================================================================+
PRINT( CTimeUtils::IsFirstDayOfMonth(t) );
PRINT( CTimeUtils::IsLastDayOfMonth(t) );
PRINT( CTimeUtils::IsWeekend(t) );
PRINT( CTimeUtils::IsWeekday(t) );
PRINT( CTimeUtils::IsSunday(t) );
PRINT( CTimeUtils::IsMonday(t) );
PRINT( CTimeUtils::IsTuesday(t) );
PRINT( CTimeUtils::IsWednesday(t) );
PRINT( CTimeUtils::IsThursday(t) );
PRINT( CTimeUtils::IsFriday(t) );
PRINT( CTimeUtils::IsSaturday(t) );
//+==================================================================+
//| IsSame() Units |
//+==================================================================+
PRINT( CTimeUtils::IsSameMinute(t, CTimeUtils::AddHours(t, 25)) );
PRINT( CTimeUtils::IsSameHour(t, CTimeUtils::AddHours(t, 25)) );
PRINT( CTimeUtils::IsSameDay(t, CTimeUtils::AddHours(t, 25)) );
PRINT( CTimeUtils::IsSameWeek(t, CTimeUtils::AddHours(t, 25)) );
PRINT( CTimeUtils::IsSameMonth(t, CTimeUtils::AddHours(t, 25)) );
PRINT( CTimeUtils::IsSameQuarter(t, CTimeUtils::AddHours(t, 25)) );
PRINT( CTimeUtils::IsSameYear(t, CTimeUtils::AddHours(t, 25)) );
//+==================================================================+
//| IsCurrent() Units |
//+==================================================================+
PRINT( CTimeUtils::IsCurrentMinute(t) );
PRINT( CTimeUtils::IsCurrentHour(t) );
PRINT( CTimeUtils::IsCurrentWeek(t) );
PRINT( CTimeUtils::IsCurrentMonth(t) );
PRINT( CTimeUtils::IsCurrentQuarter(t) );
PRINT( CTimeUtils::IsCurrentYear(t) );
PRINT( CTimeUtils::IsToday(t) );
PRINT( CTimeUtils::IsTomorrow(t) );
PRINT( CTimeUtils::IsYesterday(t) );
//+==================================================================+
//| Session() Checks |
//+==================================================================+
PRINT( CTimeUtils::IsInSession(8, 0, 17, 0) ); // Uses TimeTradeServer()
PRINT( CTimeUtils::IsInSession("22:00", "06:00") );
//+==================================================================+
//| Misc |
//+==================================================================+
PRINT( CTimeUtils::IsLeapYear(2100) );
PRINT( CTimeUtils::DaysInYear(2100) );
PRINT( CTimeUtils::DaysInMonth(2024, 2) );
PRINT( CTimeUtils::WeeksInYear(2026) );
PRINT( CTimeUtils::WeeksInMonth(2026, 8) );
//####################################################################
//# #
//# Format & Display #
//# #
//####################################################################
//+==================================================================+
//| Formating Time to String |
//+==================================================================+
PRINT( TimeToString(t) ); // MQL's native TimeToString()
PRINT( CTimeUtils::t2s(t) ); // Formats time with the weekday name
PRINT( CTimeUtils::TimeFormat(t) );
PRINT( CTimeUtils::TimeFormat(t, "DDD, YYYY.MM.DD hh:mm:ss") );
PRINT( CTimeUtils::TimeFormat(t, "DDDD, D MMM YYYY, HH:mm a") );
PRINT( CTimeUtils::SecondsToString( CTimeUtils::SecsElapsedOfDay(t) ) );
}
//+------------------------------------------------------------------+
/*
example output:
1. TimeToString(t, TIME_DATE|TIME_SECONDS) = 2026.07.18 19:54:28
2. CTimeUtils::t2s( t, TIME_DATE|TIME_SECONDS) = Sat, 2026.07.18 19:54:28
3. CTimeUtils::TimeToStructFast(t, dt[0]) = true
[year] [mon] [day] [hour] [min] [sec] [day_of_week] [day_of_year]
[0] 2026 7 18 19 54 28 6 198
4. CTimeUtils::DateFrom(2022, 03, 25) = 2022.03.25 00:00:00
5. CTimeUtils::StructToTimeFast(dt[0]) = 2026.07.18 19:54:28
6. CTimeUtils::Second(t) = 28
7. CTimeUtils::Minute(t) = 54
8. CTimeUtils::Hour(t) = 19
9. CTimeUtils::Day(t) = 18
10. CTimeUtils::Month(t) = 7
11. CTimeUtils::Year(t) = 2026
12. CTimeUtils::DateOnly(t) = 2026.07.18 00:00:00
13. CTimeUtils::TimeOnly(t) = 1970.01.01 19:54:28
14. CTimeUtils::DayOfWeek(t) = 6
15. CTimeUtils::DayOfYear(t) = 198
16. CTimeUtils::WeekOfMonth(t) = 3
17. CTimeUtils::WeekOfYear(t) = 29
18. CTimeUtils::MinuteIndex(t) = 29740074
19. CTimeUtils::HourIndex(t) = 495667
20. CTimeUtils::DayIndex(t) = 20652
21. CTimeUtils::WeekIndex(t) = 2950
22. CTimeUtils::MonthIndex(t) = 678
23. CTimeUtils::QuarterIndex(t) = 226
24. CTimeUtils::YearIndex(t) = 56
25. CTimeUtils::Quarter(t) = 3
26. CTimeUtils::HourOfWeek(t) = 139
27. CTimeUtils::HourOfMonth(t) = 427
28. CTimeUtils::HourOfQuarter(t) = 427
29. CTimeUtils::HourOfYear(t) = 4771
30. CTimeUtils::MinuteOfDay(t) = 1194
31. CTimeUtils::MinuteOfWeek(t) = 8394
32. CTimeUtils::MinuteOfMonth(t) = 25674
33. CTimeUtils::MinuteOfQuarter(t) = 25674
34. CTimeUtils::MinuteOfYear(t) = 286314
35. CTimeUtils::SecsElapsedOfMinute(t) = 28
36. CTimeUtils::SecsElapsedOfHour(t) = 3268
37. CTimeUtils::SecsElapsedOfDay(t) = 71668
38. CTimeUtils::SecsElapsedOfWeek(t) = 503668
39. CTimeUtils::SecsElapsedOfMonth(t) = 1540468
40. CTimeUtils::SecsElapsedOfQuarter(t) = 1540468
41. CTimeUtils::SecsElapsedOfYear(t) = 17178868
42. CTimeUtils::SecsElapsedOfEpoch(t) = 1784404468
43. CTimeUtils::StartOfMinute(t) = 2026.07.18 19:54:00
44. CTimeUtils::StartOfHour(t) = 2026.07.18 19:00:00
45. CTimeUtils::StartOfDay(t) = 2026.07.18 00:00:00
46. CTimeUtils::StartOfWeek(t) = 2026.07.13 00:00:00
47. CTimeUtils::StartOfMonth(t) = 2026.07.01 00:00:00
48. CTimeUtils::StartOfQuarter(t) = 2026.07.01 00:00:00
49. CTimeUtils::StartOfYear(t) = 2026.01.01 00:00:00
50. CTimeUtils::StartOfToday() = 2026.07.18 00:00:00
51. CTimeUtils::StartOfTomorrow() = 2026.07.19 00:00:00
52. CTimeUtils::StartOfYesterday() = 2026.07.17 00:00:00
53. CTimeUtils::EndOfMinute(t) = 2026.07.18 19:54:59
54. CTimeUtils::EndOfHour(t) = 2026.07.18 19:59:59
55. CTimeUtils::EndOfDay(t) = 2026.07.18 23:59:59
56. CTimeUtils::EndOfWeek(t) = 2026.07.19 23:59:59
57. CTimeUtils::EndOfMonth(t) = 2026.07.31 23:59:59
58. CTimeUtils::EndOfQuarter(t) = 2026.09.30 23:59:59
59. CTimeUtils::EndOfYear(t) = 2026.12.31 23:59:59
60. CTimeUtils::EndOfToday() = 2026.07.18 23:59:59
61. CTimeUtils::EndOfTomorrow() = 2026.07.19 23:59:59
62. CTimeUtils::EndOfYesterday() = 2026.07.17 23:59:59
63. CTimeUtils::LastDayOfWeek(t) = 2026.07.19 00:00:00
64. CTimeUtils::LastDayOfMonth(t) = 2026.07.31 00:00:00
65. CTimeUtils::LastDayOfQuarter(t) = 2026.09.30 00:00:00
66. CTimeUtils::LastDayOfYear(t) = 2026.12.31 00:00:00
67. CTimeUtils::RoundToMinute(t) = 2026.07.18 19:54:00
68. CTimeUtils::RoundToHour(t) = 2026.07.18 20:00:00
69. CTimeUtils::RoundToDay(t) = 2026.07.19 00:00:00
70. CTimeUtils::RoundToWeek(t) = 2026.07.20 00:00:00
71. CTimeUtils::CeilToMinute(t) = 2026.07.18 19:55:00
72. CTimeUtils::CeilToHour(t) = 2026.07.18 20:00:00
73. CTimeUtils::CeilToDay(t) = 2026.07.19 00:00:00
74. CTimeUtils::CeilToWeek(t) = 2026.07.20 00:00:00
75. CTimeUtils::NextSunday(t) = 2026.07.19 00:00:00
76. CTimeUtils::NextMonday(t) = 2026.07.20 00:00:00
77. CTimeUtils::NextTuesday(t) = 2026.07.21 00:00:00
78. CTimeUtils::NextWednesday(t) = 2026.07.22 00:00:00
79. CTimeUtils::NextThursday(t) = 2026.07.23 00:00:00
80. CTimeUtils::NextFriday(t) = 2026.07.24 00:00:00
81. CTimeUtils::NextSaturday(t) = 2026.07.25 00:00:00
82. CTimeUtils::PreviousSunday(t) = 2026.07.12 00:00:00
83. CTimeUtils::PreviousMonday(t) = 2026.07.13 00:00:00
84. CTimeUtils::PreviousTuesday(t) = 2026.07.14 00:00:00
85. CTimeUtils::PreviousWednesday(t) = 2026.07.15 00:00:00
86. CTimeUtils::PreviousThursday(t) = 2026.07.16 00:00:00
87. CTimeUtils::PreviousFriday(t) = 2026.07.17 00:00:00
88. CTimeUtils::PreviousSaturday(t) = 2026.07.11 00:00:00
89. CTimeUtils::FirstWeekdayOfMonth(t, SUNDAY) = 2026.07.05 00:00:00
90. CTimeUtils::LastWeekdayOfMonth(t, SUNDAY) = 2026.07.26 00:00:00
91. CTimeUtils::WithSecond(t, 05) = 2026.07.18 19:54:05
92. CTimeUtils::WithMinute(t, 30) = 2026.07.18 19:30:28
93. CTimeUtils::WithHour(t, 10) = 2026.07.18 10:54:28
94. CTimeUtils::WithDay(t, 26) = 2026.07.26 19:54:28
95. CTimeUtils::WithMonth(t, 2) = 2026.02.18 19:54:28
96. CTimeUtils::WithYear(t, 2024) = 2024.07.18 19:54:28
97. CTimeUtils::WithDayOfWeek(t, FRIDAY) = 2026.07.17 19:54:28
98. CTimeUtils::WithTime(t, 10, 30, 05) = 2026.07.18 10:30:05
99. CTimeUtils::WithDate(t, 2024, 2, 26) = 2024.02.26 19:54:28
100. CTimeUtils::AddSeconds(t, 30) = 2026.07.18 19:54:58
101. CTimeUtils::AddMinutes(t, 30) = 2026.07.18 20:24:28
102. CTimeUtils::AddHours(t, 2) = 2026.07.18 21:54:28
103. CTimeUtils::AddDays(t, 10) = 2026.07.28 19:54:28
104. CTimeUtils::AddBusinessDays(t, 10) = 2026.07.31 19:54:28
105. CTimeUtils::AddWeeks(t, 4) = 2026.08.15 19:54:28
106. CTimeUtils::AddMonths(t, 2) = 2026.09.18 19:54:28
107. CTimeUtils::AddQuarters(t, 3) = 2027.04.18 19:54:28
108. CTimeUtils::AddYears(t, 5) = 2031.07.18 19:54:28
109. CTimeUtils::SubSeconds(t, 30) = 2026.07.18 19:53:58
110. CTimeUtils::SubMinutes(t, 30) = 2026.07.18 19:24:28
111. CTimeUtils::SubHours(t, 2) = 2026.07.18 17:54:28
112. CTimeUtils::SubDays(t, 10) = 2026.07.08 19:54:28
113. CTimeUtils::SubBusinessDays(t, 10) = 2026.07.06 19:54:28
114. CTimeUtils::SubWeeks(t, 4) = 2026.06.20 19:54:28
115. CTimeUtils::SubMonths(t, 2) = 2026.05.18 19:54:28
116. CTimeUtils::SubQuarters(t, 3) = 2025.10.18 19:54:28
117. CTimeUtils::SubYears(t, 5) = 2021.07.18 19:54:28
118. CTimeUtils::DifferenceInCalendarDays( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) = 364
119. CTimeUtils::DifferenceInCalendarWeeks( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) = 52
120. CTimeUtils::DifferenceInCalendarMonths( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) = 11
121. CTimeUtils::DifferenceInCalendarQuarters( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) = 3
122. CTimeUtils::DifferenceInCalendarYears( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) = 0
123. CTimeUtils::DifferenceInSeconds( t, CTimeUtils::EndOfDay(t)) = 14731
124. CTimeUtils::DifferenceInMinutes( t, CTimeUtils::EndOfDay(t)) = 245
125. CTimeUtils::DifferenceInHours( t, CTimeUtils::EndOfDay(t)) = 4
126. CTimeUtils::DifferenceInDays( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) = 364
127. CTimeUtils::DifferenceInWeeks( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) = 52
128. CTimeUtils::DifferenceInMonths( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) = 11
129. CTimeUtils::DifferenceInQuarters( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) = 3
130. CTimeUtils::DifferenceInYears( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) = 0
131. CTimeUtils::DifferenceInBusinessDays( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) = 260
132. CTimeUtils::DifferenceInWeekendDays( CTimeUtils::StartOfYear(t), CTimeUtils::EndOfYear(t)) = 104
133. CTimeUtils::CalendarDifference( t, D'2035.10.9', diff ) = true
134. CTimeUtils::CalendarDifferenceToString( t, D'2035.10.9' ) = 9y 2m 20d 04:05:32
135. CTimeUtils::AddPeriod( t, diff ) = 2035.10.09 00:00:00
136. CTimeUtils::SubPeriod( D'2035.10.9', diff ) = 2026.07.18 19:54:28
137. CTimeUtils::IsFirstDayOfMonth(t) = false
138. CTimeUtils::IsLastDayOfMonth(t) = false
139. CTimeUtils::IsWeekend(t) = true
140. CTimeUtils::IsWeekday(t) = false
141. CTimeUtils::IsSunday(t) = false
142. CTimeUtils::IsMonday(t) = false
143. CTimeUtils::IsTuesday(t) = false
144. CTimeUtils::IsWednesday(t) = false
145. CTimeUtils::IsThursday(t) = false
146. CTimeUtils::IsFriday(t) = false
147. CTimeUtils::IsSaturday(t) = true
148. CTimeUtils::IsSameMinute(t, CTimeUtils::AddHours(t, 25)) = false
149. CTimeUtils::IsSameHour(t, CTimeUtils::AddHours(t, 25)) = false
150. CTimeUtils::IsSameDay(t, CTimeUtils::AddHours(t, 25)) = false
151. CTimeUtils::IsSameWeek(t, CTimeUtils::AddHours(t, 25)) = true
152. CTimeUtils::IsSameMonth(t, CTimeUtils::AddHours(t, 25)) = true
153. CTimeUtils::IsSameQuarter(t, CTimeUtils::AddHours(t, 25)) = true
154. CTimeUtils::IsSameYear(t, CTimeUtils::AddHours(t, 25)) = true
155. CTimeUtils::IsCurrentMinute(t) = true
156. CTimeUtils::IsCurrentHour(t) = true
157. CTimeUtils::IsCurrentWeek(t) = true
158. CTimeUtils::IsCurrentMonth(t) = true
159. CTimeUtils::IsCurrentQuarter(t) = true
160. CTimeUtils::IsCurrentYear(t) = true
161. CTimeUtils::IsToday(t) = true
162. CTimeUtils::IsTomorrow(t) = false
163. CTimeUtils::IsYesterday(t) = false
164. CTimeUtils::IsInSession(8, 0, 17, 0) = false
165. CTimeUtils::IsInSession(22:00, 06:00) = false
166. CTimeUtils::IsLeapYear(2100) = false
167. CTimeUtils::DaysInYear(2100) = 365
168. CTimeUtils::DaysInMonth(2024, 2) = 29
169. CTimeUtils::WeeksInYear(2026) = 53
170. CTimeUtils::WeeksInMonth(2026, 8) = 6
171. TimeToString(t) = 2026.07.18 19:54
172. CTimeUtils::t2s(t) = Sat, 2026.07.18 19:54
173. CTimeUtils::TimeFormat(t) = 2026.07.18 19:54
174. CTimeUtils::TimeFormat(t, DDD, YYYY.MM.DD hh:mm:ss) = Sat, 2026.07.18 19:54:28
175. CTimeUtils::TimeFormat(t, DDDD, D MMM YYYY, HH:mm a) = Saturday, 18 Jul 2026, 07:54 pm
176. CTimeUtils::SecondsToString( CTimeUtils::SecsElapsedOfDay(t) ) = 19:54:28
*/