Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
ai.fluctio.fluctio-sim / Utils / Extensions / TimeSpanExtensions.cs
Size: Mime:
using System;
using System.Diagnostics.CodeAnalysis;
using UnityEngine;

namespace Fluctio.FluctioSim.Utils.Extensions
{
	public static class TimeSpanExtensions
	{

		public static int ToSteps(this TimeSpan time) => Mathf.RoundToInt((float)time.TotalSeconds / Time.fixedDeltaTime);
		public static TimeSpan FromSteps(int steps) => TimeSpan.FromSeconds(steps * Time.fixedDeltaTime);
		
		[SuppressMessage("ReSharper", "CompareOfFloatsByEqualityOperator")]
		public static string ToReadableString(this TimeSpan value) =>
			(value.TotalMinutes < 1) ? $"{value.Seconds}s" :
			(value.TotalMinutes == 1) ? $"{value.Minutes}m" :
			(value.TotalHours < 1) ? $"{value.Minutes}m {value.Seconds}s" :
			(value.TotalHours == 1) ? $"{value.Hours}h" :
			(value.TotalDays < 1) ? $"{value.Hours}h {value.Minutes}m" :
			(value.TotalDays == 1) ? $"{value.Days}d" :
			$"{value.Days}d {value.Hours}h";

		public static TimeSpan Modulo(this TimeSpan timeSpan, TimeSpan interval) =>
			TimeSpan.FromTicks(timeSpan.Ticks % interval.Ticks);

	}
}