///
/// 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);
}
}