public static ErinnTime GetNextTime(DateTime now, int hour, int minute)
{
if (hour < 0 || hour > 23)
throw new ArgumentException("Invalid hour.");
if (minute < 0 || minute > 59)
throw new ArgumentException("Invalid minute.");
var nowErinn = new ErinnTime(now);
var hours = hour - nowErinn.Hour;
var minutes = minute - nowErinn.Minute;
if (hours <= 0)
{
hours += 24;
}
if (minutes < 0)
{
minutes = 60 + minutes;
hours -= 1;
}
var thenDateTime = now.AddTicks(hours * TicksPerHour).AddTicks(minutes * TicksPerMinute);
return new ErinnTime(thenDateTime);
}
}