Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DateTime now = DateTime.Now;
- int second = 0;
- // round to nearest 5 second mark
- if (now.Second % 5 > 2.5)
- {
- // round up
- second = now.Second + (5 - (now.Second % 5));
- }
- else
- {
- // round down
- second = now.Second - (now.Second % 5);
- }
- DateTime rounded = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, second);
- DateTime now = DateTime.Now;
- DateTime rounded = new DateTime(((now.Ticks + 25000000) / 50000000) * 50000000);
- public static TimeSpan Round(this TimeSpan time, TimeSpan roundingInterval, MidpointRounding roundingType) {
- return new TimeSpan(
- Convert.ToInt64(Math.Round(
- time.Ticks / (decimal)roundingInterval.Ticks,
- roundingType
- )) * roundingInterval.Ticks
- );
- }
- public static TimeSpan Round(this TimeSpan time, TimeSpan roundingInterval) {
- return Round(time, roundingInterval, MidpointRounding.ToEven);
- }
- public static DateTime Round(this DateTime datetime, TimeSpan roundingInterval) {
- return new DateTime((datetime - DateTime.MinValue).Round(roundingInterval).Ticks);
- }
- new DateTime(2010, 11, 4, 10, 28, 27).Round(TimeSpan.FromMinutes(1)); // rounds to 2010.11.04 10:28:00
- new DateTime(2010, 11, 4, 13, 28, 27).Round(TimeSpan.FromDays(1)); // rounds to 2010.11.05 00:00
- new TimeSpan(0, 2, 26).Round(TimeSpan.FromSeconds(5)); // rounds to 00:02:25
- new TimeSpan(3, 34, 0).Round(TimeSpan.FromMinutes(37); // rounds to 03:42:00...for all your round-to-37-minute needs
- static int Round(int n, int r)
- {
- if ((n % r) <= r / 2)
- {
- return n - (n % r);
- }
- return n + (r - (n % r));
- }
- DateTime rounded = roundTo5Secs (DateTime.Now);
- secBase = now.Second / 5;
- secExtra = now.Second % 5;
- if (secExtra > 2) {
- return new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute,
- secBase + 5);
- }
- return new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute,
- secBase);
- // truncate to multiple of 5
- int second = 5 * (int) (now.Second / 5);
- DateTime dt = new DateTime(..., second);
- // round-up if necessary
- if (now.Second % 5 > 2.5)
- {
- dt = dt.AddSeconds(5);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement