public DateTime GetNextGranularity(DateTime now, GranularityDirection dir) { throw new NotImplementedException(); }
public virtual DateTime GetNextGranularity(DateTime now, GranularityDirection dir) => Resources.GetNextGranularity(Granularity, Offset, now, dir);
public static DateTime GetNextGranularity(int gran, int offset, DateTime now, GranularityDirection dir) { // get number of minutes between now and beginning of day (midnight + offset) of passed-in date DateTime dayBegin = now.Date.AddHours(offset); double repairBeginMinutes = now.Subtract(dayBegin).TotalMinutes; if (repairBeginMinutes % gran == 0) { return(now); //this is a granularity boundary } else { int numGrans = Convert.ToInt32(repairBeginMinutes / gran); return(dayBegin.AddMinutes((numGrans + (int)dir) * gran)); } }