Skip to content

TimeAxisHelper

ClassChartGuruChartGuru
public static class TimeAxisHelper

Utilities 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.IsTimeAxis set, 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, when ChartGuru.AxisConfig.TimeDomainExplicitlySet is true, override the data-derived domain for tick generation.

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.

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.

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.

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.

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.

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.

public const int HardTickSafetyCap = 512

Hard 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.