/// /// MIT License - Copyright(c) 2019 Ugo Belfiore /// using UnityEngine; /// /// Extensions for DateTime /// public static class ExtDateTime { public struct TimeSec { public int Minutes; public int Seconds; public float Miliseconds; public bool IsNegative; public TimeSec(int minutes, int seconds, float miliseconds, bool isNegative) { Minutes = minutes; Seconds = seconds; Miliseconds = miliseconds; IsNegative = isNegative; } } /// /// from a TimeSec, transform it to a string /// /// /// public static string GetTimeInStringFromTimeSec(TimeSec timeSec) { string timeInText = ""; if (timeSec.IsNegative) { timeInText += '-'; } if (timeSec.Seconds == -1) { return (timeInText); } if (timeSec.Minutes < 10) { timeInText += "0"; } timeInText += timeSec.Minutes; timeInText += " ' "; if (timeSec.Seconds < 10) { timeInText += "0"; } timeInText += timeSec.Seconds; timeInText += " '' "; timeSec.Miliseconds = (int)timeSec.Miliseconds; if (timeSec.Miliseconds < 10) { timeInText += "0"; } if (timeSec.Miliseconds >= 100) { timeSec.Miliseconds = 99; } timeInText += timeSec.Miliseconds; return (timeInText); } /// /// Get a TimeSec from a float time in seconds /// /// time in seconds /// public static TimeSec GetTimeSec(float time) { float absTime = Mathf.Abs(time); int minutes = GetMinutes(absTime); int second = GetSeconds(absTime); float miliseconds = GetMiliseconds(absTime); return (new TimeSec(minutes, second, miliseconds, Mathf.Sign(time) == -1)); } /// /// from a given time, Get the minutes /// public static int GetMinutes(float time) { int minutes = (int)(time / 60); return (minutes); } public static int GetSeconds(float time) { int seconds = (int)(time % 60); return (seconds); } public static float GetMiliseconds(float time) { int minutes = GetMinutes(time); int seconds = (int)(time % 60); return ((time - seconds - (minutes * 60)) * 100f); } }