조다 타임 (Joda Time)에서 인간 중심 스타일 시대를 손쉽게 얻을 수있는 방법이 있습니까?Joda 시간의 진행 기간은 어떻게 받습니까?
예를 들어 지난 4 일간을 원한다면 3 일 동안 전체 기간과 현재 진행중인 현재 시간까지 나에게주기를 제공하십시오. 그래서 나는 1 일, 1 일, 1 일, n 시간의 간격을 현재 시간까지 예상 할 수 있습니다.
지난 5 주 동안 현재 주까지 4 주간 및 진행중인 주간을 알려주십시오.
나는 이것을 가지고 약간의 시간을 보냈으며, 어려운 부분은 인간의 말의 인간 정의에 대한 기간을 "정상화"하려고하는 것이다. 그래서 오늘까지는 하루의 시작 (항상 자정)으로 정상화하고 그 사이의 간격을 찾아야합니다. 미친 까다로운 개월 동안, 당신은 달의 시작 부분으로 정상화하고 지금 갈 필요가 있습니다 ... 등등이 훨씬 더 어려워 내가 기간 특정 정규화 논리와 함께 거대한 사건 진술을 피하기 위해 노력하고 나는 두뇌를 깨고 일반적인 접근법을 찾는다.
여기 (그루비에서) 내 현재 코드는
static List generatePreviousIntervals(BaseSingleFieldPeriod period,
int count,
DateTime end = DateTime.now()) {
if (count < 1) {
return []
}
def intervals = []
Interval last
count.times {
def finish = last?.start ?: end
def next = new Interval(period, finish)
intervals.add(next)
last = next
}
// reverse so intervals are in normal progression order
intervals.reverse()
}
뭔가 Joda 시간을 쉽게 할 수 있다는 것입니까? 또는 특정 시간 간격으로 손을 돌리는 과정에서 많은 논리가 있어야합니까? 당신 같은
FYI [Joda-Time] (http://www.joda.org/joda-time/) 프로젝트는 현재 [유지 관리 모드] (https://en.wikipedia.org/wiki/Maintenance_mode)에 있습니다. 팀은 [java.time] (http://docs.oracle.com/javase/9/docs/api/java/time/package-summary.html) 클래스로 마이그레이션하도록 조언했습니다. [Tutorial by Oracle] (https://docs.oracle.com/javase/tutorial/datetime/TOC.html)을 참조하십시오. 또한 * ThreeTen-Extra * 라이브러리가이 문제를 해결하는 데 도움이 될 수 있습니다. –