Skip to content

Instantly share code, notes, and snippets.

@eriksimonic
Created December 14, 2018 09:39
Show Gist options
  • Save eriksimonic/9722b28c4f12188e0e4456dc048c99bb to your computer and use it in GitHub Desktop.
Save eriksimonic/9722b28c4f12188e0e4456dc048c99bb to your computer and use it in GitHub Desktop.
Reorder array based on DateTime.
private static int GetArrayIndexFromUtc(int length, int frameTimeout)
{
var slides = length;
var slideDuration = frameTimeout;
var frameSegment = slideDuration * slides;
var currentDateTime = DateTime.Now;
var baseDateTime = new DateTime(currentDateTime.Year, currentDateTime.Month, currentDateTime.Day, 0, 0, 0, 0);
var ticks = (currentDateTime - baseDateTime).TotalMilliseconds;
var frame = ticks - (Math.Floor(ticks / frameSegment) * frameSegment);
var cFrame = Math.Floor(frame / slideDuration);
return (int)cFrame;
}
public static IEnumerable<T> OrderItemsByTimeFrame<T>(this IEnumerable<T> items, int slideDelay)
{
var index = GetArrayIndexFromUtc(items.Count(), slideDelay);
var enumerable = items.Take(index);
return items.Skip(index).Concat(enumerable);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment