Clock, date and time

Energy.Base.Clock contains functions related to classes, objects and assemblies.

You will find here functions to modify fields or properties of C# objects.

CurrentTime

Return current date in ISO format.

Example: “2020-01-01”.

string Energy.Base.Clock.CurrentDate

CurrentTime

Return current time as time string with millisecond part in 24h format.

Example: “17:33:15.176”.

string Energy.Base.Clock.CurrentDate

CurrentTimeSpace

Return current time as time string with millisecond part in 24h format and trailing space. Example: “17:33:15.176 “.

string Energy.Base.Clock.CurrentTimeSpace

Floor

Round time to specified precision.

DateTime Energy.Base.Clock.Floor(DateTime value, int precision)

Precision may be positive or negative number. On positive precision function will include as many fractional second digits as possible (up to 7). On negative precision function may round to minute, hour or even a year. Use 3 for milliseconds, 6 for microseconds, -2 for minutes, -4 for hours, etc.

DateTime needle;
DateTime result;
needle = new DateTime(2121, 12, 16, 21, 17, 33, 456);
result = Energy.Base.Clock.Floor(needle, 4);   // 2121-12-16 21:17:33.456
result = Energy.Base.Clock.Floor(needle, 3);   // 2121-12-16 21:17:33.456
result = Energy.Base.Clock.Floor(needle, 2);   // 2121-12-16 21:17:33.450
result = Energy.Base.Clock.Floor(needle, 1);   // 2121-12-16 21:17:33.400
result = Energy.Base.Clock.Floor(needle, 0);   // 2121-12-16 21:17:33
result = Energy.Base.Clock.Floor(needle, -1);  // 2121-12-16 21:17:30
result = Energy.Base.Clock.Floor(needle, -2);  // 2121-12-16 21:17:00
result = Energy.Base.Clock.Floor(needle, -3);  // 2121-12-16 21:10:00
result = Energy.Base.Clock.Floor(needle, -4);  // 2121-12-16 21:00:00
result = Energy.Base.Clock.Floor(needle, -5);  // 2121-12-16 20:00:00
result = Energy.Base.Clock.Floor(needle, -6);  // 2121-12-16 00:00:00
result = Energy.Base.Clock.Floor(needle, -7);  // 2121-12-10 00:00:00
result = Energy.Base.Clock.Floor(needle, -8);  // 2121-12-01 00:00:00
result = Energy.Base.Clock.Floor(needle, -9);  // 2121-10-01 00:00:00
result = Energy.Base.Clock.Floor(needle, -10); // 2121-01-01 00:00:00
result = Energy.Base.Clock.Floor(needle, -11); // 2120-01-01 00:00:00
result = Energy.Base.Clock.Floor(needle, -12); // 2100-01-01 00:00:00
result = Energy.Base.Clock.Floor(needle, -13); // 2000-01-01 00:00:00
result = Energy.Base.Clock.Floor(needle, -14); // 0001-01-01 00:00:00

Truncate

Round down DateTime value to desired precision of seconds.

DateTime Energy.Base.Clock.Truncate(DateTime value, int precision)

Round down DateTime to whole seconds

DateTime Energy.Base.Clock.Truncate(DateTime value)

Round down TimeSpan to desired precision of seconds.

TimeSpan Energy.Base.Clock.Truncate(TimeSpan value, int precision)

HasFractionalPart

Check if DateTime value contains fractional part of seconds.

bool Energy.Base.Clock.HasFractionalPart(DateTime value)

Check if TimeSpan value contains fractional part of seconds.

bool Energy.Base.Clock.HasFractionalPart(TimeSpan value)

IsLeapYear

Sample subroutine to calculate if a year is a leap year.

bool Energy.Base.Clock.IsLeapYear(int year)