Как округлить DateTime до ближайшего периода

Я хочу иметь возможность округлять любой данный Instant до ближайшего периода до поддержка группировки данных.

т.е. кто-то может захотеть сгруппировать по 2-недельным периодам, поэтому, учитывая Мгновенно, я хочу иметь возможность работать в ближайшее время (до или после) на границе периода, где «сейчас» считается концом текущего периода. Если сегодня вторник, то считайте, что это 2 неделя Период заканчивается на этой неделе. Учитывая любую дату (с этого момента назад), я бы хотелось бы рассчитать «2-недельный период», которому он подходит.

// pseudo code

Period sevenDays = Days.SEVEN;

Instant nearestWeek = sevenDays.roundToNearest(new DateTime());

Period twelveHours = Hours.hours(12);

Instant nearestHalfDay = twelveHours.roundToNearest(new DateTime());

Я надеюсь, что это имеет смысл, любая помощь или указатели приветствуются.

7
задан Jon Skeet 19 January 2012 в 20:58
поделиться