TimeAxisHelper
public static class TimeAxisHelperUtilities for converting between System.DateTime and the float “axis seconds”
values that flow through the rendering pipeline, and for generating calendar-aligned
ticks on a time axis.
Contract:
- When an axis has
ChartGuru.AxisConfig.IsTimeAxisset, its numeric X values are interpreted as seconds since the Unix epoch (1970-01-01 UTC). - Users can either supply those values directly (preferred for precision) or use AxisSeconds(DateTime) to convert.
ChartGuru.AxisConfig.TimeDomainMin/ChartGuru.AxisConfig.TimeDomainMax, whenChartGuru.AxisConfig.TimeDomainExplicitlySetis true, override the data-derived domain for tick generation.
Methods
Section titled “Methods”
AxisSeconds(DateTime, double)
Section titled “AxisSeconds(DateTime, double)”public static float AxisSeconds(DateTime dt, double origin = 0)Converts a System.DateTime to the float value expected on a time axis
(seconds since the Unix epoch, minus the optional origin offset).
Parameters
| Name | Type | Description |
|---|---|---|
dt |
System.DateTime | |
origin |
System.Double |
Returns
System.Single — No return description is available.
FromAxisSeconds(float, double)
Section titled “FromAxisSeconds(float, double)”public static DateTime FromAxisSeconds(float seconds, double origin = 0)Converts an axis-seconds float back to a UTC System.DateTime,
adding back the origin offset.
Parameters
| Name | Type | Description |
|---|---|---|
seconds |
System.Single | |
origin |
System.Double |
Returns
System.DateTime — No return description is available.
DetectBestUnit(TimeSpan)
Section titled “DetectBestUnit(TimeSpan)”public static TimeUnit DetectBestUnit(TimeSpan span)Picks a sensible ChartGuru.TimeUnit for the given span.
Parameters
| Name | Type | Description |
|---|---|---|
span |
System.TimeSpan |
Returns
ChartGuru.TimeUnit — No return description is available.
DefaultFormat(TimeUnit)
Section titled “DefaultFormat(TimeUnit)”public static string DefaultFormat(TimeUnit unit)Default tick label format for a given time unit (applied when
ChartGuru.AxisConfig.TimeFormat is empty).
Parameters
| Name | Type | Description |
|---|---|---|
unit |
ChartGuru.TimeUnit |
Returns
System.String — No return description is available.
RoundDown(DateTime, TimeUnit)
Section titled “RoundDown(DateTime, TimeUnit)”public static DateTime RoundDown(DateTime dt, TimeUnit unit)Rounds dt down to the nearest whole unit boundary.
Parameters
| Name | Type | Description |
|---|---|---|
dt |
System.DateTime | |
unit |
ChartGuru.TimeUnit |
Returns
System.DateTime — No return description is available.
AddUnit(DateTime, TimeUnit, int)
Section titled “AddUnit(DateTime, TimeUnit, int)”public static DateTime AddUnit(DateTime dt, TimeUnit unit, int amount)Adds amount units of unit to dt.
Parameters
| Name | Type | Description |
|---|---|---|
dt |
System.DateTime | |
unit |
ChartGuru.TimeUnit | |
amount |
System.Int32 |
Returns
System.DateTime — No return description is available.
PickNiceStep(DateTime, DateTime, TimeUnit, int, out TimeUnit, out int)
Section titled “PickNiceStep(DateTime, DateTime, TimeUnit, int, out TimeUnit, out int)”public static void PickNiceStep(DateTime min, DateTime max, TimeUnit preferredUnit, int desiredCount, out TimeUnit unit, out int multiplier)Picks a nice (unit, multiplier) pair so that roughly desiredCount
ticks span the domain. Swift Charts equivalent: the internal “AutomaticAxisMarks”
resolver for temporal scales.
Parameters
| Name | Type | Description |
|---|---|---|
min |
System.DateTime | |
max |
System.DateTime | |
preferredUnit |
ChartGuru.TimeUnit | |
desiredCount |
System.Int32 | |
unit |
ChartGuru.TimeUnit | |
multiplier |
System.Int32 | |
GenerateStrideTickValues(float, float, TimeUnit, int, double)
Section titled “GenerateStrideTickValues(float, float, TimeUnit, int, double)”public static List<float> GenerateStrideTickValues(float minSeconds, float maxSeconds, TimeUnit unit, int multiplier, double origin = 0)Emits calendar-aligned tick values between minSeconds and
maxSeconds, stepping multiplier x
unit at a time across the full domain. Swift Charts equivalent:
AxisMarks(values: .Stride(by: unit, count: multiplier)).
Parameters
| Name | Type | Description |
|---|---|---|
minSeconds |
System.Single | |
maxSeconds |
System.Single | |
unit |
ChartGuru.TimeUnit | |
multiplier |
System.Int32 | |
origin |
System.Double |
Returns
System.Collections.Generic.List{System.Single} — No return description is available.
GenerateStrideTickValues(float, float, TimeUnit, int, List, double)
Section titled “GenerateStrideTickValues(float, float, TimeUnit, int, List, double)”public static void GenerateStrideTickValues(float minSeconds, float maxSeconds, TimeUnit unit, int multiplier, List<float> result, double origin = 0)No description is available for this member.
Parameters
| Name | Type | Description |
|---|---|---|
minSeconds |
System.Single | |
maxSeconds |
System.Single | |
unit |
ChartGuru.TimeUnit | |
multiplier |
System.Int32 | |
result |
System.Collections.Generic.List{System.Single} | |
origin |
System.Double | |
GenerateAutomaticTickValues(float, float, TimeUnit, int, double)
Section titled “GenerateAutomaticTickValues(float, float, TimeUnit, int, double)”public static List<float> GenerateAutomaticTickValues(float minSeconds, float maxSeconds, TimeUnit preferredUnit, int desiredCount, double origin = 0)Emits roughly desiredCount calendar-aligned tick values between
minSeconds and maxSeconds, choosing a nice
stride so ticks are distributed evenly. Swift Charts equivalent:
AxisMarks(values: .Automatic(desiredCount:)) on a temporal scale.
Parameters
| Name | Type | Description |
|---|---|---|
minSeconds |
System.Single | |
maxSeconds |
System.Single | |
preferredUnit |
ChartGuru.TimeUnit | |
desiredCount |
System.Int32 | |
origin |
System.Double |
Returns
System.Collections.Generic.List{System.Single} — No return description is available.
GenerateAutomaticTickValues(float, float, TimeUnit, int, double, out TimeUnit)
Section titled “GenerateAutomaticTickValues(float, float, TimeUnit, int, double, out TimeUnit)”public static List<float> GenerateAutomaticTickValues(float minSeconds, float maxSeconds, TimeUnit preferredUnit, int desiredCount, double origin, out TimeUnit resolvedUnit)No description is available for this member.
Parameters
| Name | Type | Description |
|---|---|---|
minSeconds |
System.Single | |
maxSeconds |
System.Single | |
preferredUnit |
ChartGuru.TimeUnit | |
desiredCount |
System.Int32 | |
origin |
System.Double | |
resolvedUnit |
ChartGuru.TimeUnit |
Returns
System.Collections.Generic.List{System.Single} — No return description is available.
GenerateAutomaticTickValues(float, float, TimeUnit, int, double, List, out TimeUnit)
Section titled “GenerateAutomaticTickValues(float, float, TimeUnit, int, double, List, out TimeUnit)”public static void GenerateAutomaticTickValues(float minSeconds, float maxSeconds, TimeUnit preferredUnit, int desiredCount, double origin, List<float> result, out TimeUnit resolvedUnit)No description is available for this member.
Parameters
| Name | Type | Description |
|---|---|---|
minSeconds |
System.Single | |
maxSeconds |
System.Single | |
preferredUnit |
ChartGuru.TimeUnit | |
desiredCount |
System.Int32 | |
origin |
System.Double | |
result |
System.Collections.Generic.List{System.Single} | |
resolvedUnit |
ChartGuru.TimeUnit | |
FormatValue(float, string, TimeUnit, double)
Section titled “FormatValue(float, string, TimeUnit, double)”public static string FormatValue(float seconds, string format, TimeUnit unit, double origin = 0)Formats an axis-seconds value as a date string using format
(or a unit-appropriate default when empty).
Parameters
| Name | Type | Description |
|---|---|---|
seconds |
System.Single | |
format |
System.String | |
unit |
ChartGuru.TimeUnit | |
origin |
System.Double |
Returns
System.String — No return description is available.
IsAlignedToBoundary(float, TimeUnit, int, double)
Section titled “IsAlignedToBoundary(float, TimeUnit, int, double)”public static bool IsAlignedToBoundary(float seconds, TimeUnit unit, int multiplier, double origin = 0)Returns true when the axis-seconds value falls on a calendar boundary
for the given unit and multiplier. Used by
the label-stride convenience to decide which ticks should show labels.
Parameters
| Name | Type | Description |
|---|---|---|
seconds |
System.Single | |
unit |
ChartGuru.TimeUnit | |
multiplier |
System.Int32 | |
origin |
System.Double |
Returns
System.Boolean — No return description is available.
Fields
Section titled “Fields”
HardTickSafetyCap
Section titled “HardTickSafetyCap”public const int HardTickSafetyCap = 512Hard safety cap on the number of calendar ticks we will ever emit, regardless of span or stride. Prevents pathological cases (e.g. 10 years stepped by Second) from hanging the renderer. Swift Charts has an equivalent internal guard.
Returns
System.Int32 — No return description is available.