在乔达时代,有没有一种简单的方法可以达到以人为中心的风格?
例如,如果我想要最后4天,我的意思是,给我一个周期(或者间隔可能更合适)3整天,从当前进行中的一天到当前时间。所以我预计,到当前时间间隔为1天,1天,1天,n毫秒。
或者对于过去的5周,给我4个完整的星期和当前进行中的星期到当前时间。
我花了一些时间研究这个问题,困难的部分是尝试将一个时期“正常化”为人类对这个时期结束的定义。因此,从今天开始,你需要正常化到一天的开始(总是午夜),然后找到从那到现在的间隔。几个月来,这是非常棘手的,你需要正常化到月初,然后到现在。。。等等,为了让这变得更加困难,我试图避免用特定于周期的规范化逻辑写一个巨大的案例陈述,我绞尽脑汁试图找到一种通用的方法。
以下是我当前的代码(在Groovy中)
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 Time可以轻松做到的吗?或者,我是否需要在特定的时间间隔内手动滚动很多逻辑?
就像你需要Rest一样:http://joda-time.sourceforge.net/apidocs/org/joda/time/Interval.html
(是的,这很容易,与香草java日期/日历相比非常容易)
要获取一天中的时间:
int hour = dt.getHourOfDay();
int min = dt.getMinuteOfHour();
int sec = dt.getSecondOfMinute();
这就是我最后所做的,我没有足够聪明来避免一个案例陈述,但幸运的是我使用了少量的句型,所以它并不像我想象的那么大,
/**
* Reset Joda DateTime by normalize it back to the beginning of the period
*/
static DateTime resetDate(BaseSingleFieldPeriod period,
DateTime date) {
LocalDate out = new LocalDate(date)
switch (period) {
case Years.ONE:
out = out.withMonthOfYear(1).withDayOfMonth(1)
break;
case Months.ONE:
out = out.withDayOfMonth(1)
break;
case Weeks.ONE:
// adjust day of week because Joda uses ISO standard Monday
// as start of the week
out = out.withDayOfWeek(1).minusDays(1)
break;
case Days.ONE:
// nothing to for days as we have already removed time by
// converting to local date
break;
default:
throw new UnsupportedOperationException("Unsupported period $period")
}
// convert to date minute to avoid giving specific time
out.toDateMidnight().toDateTime()
}
如果有人有更优雅的解决方案,请告诉我。
我的用例——我是一名医生。在某一天,我可以工作几个小时,但有些时间不可用。我想创建一个对象“周期我的工作日”。当有人预约上午8点到9点(即“周期病人1预约”)时,该时段将从我的工作日“删除”。当新患者访问myWorkDay时,他只看到myWorkDay-病人1约会。如果病人1释放了他的时隙,那么新患者会看到完整的myWorkDay。 有可能使用JodaTime做到这一点吗? 有一个额外的要求是不必
我想让水平进度条从0移动到100。我在布局中添加了这段代码。我应该怎么做才能移动这个进度条?
我被要求做一个按升序对数组进行排序的程序。我这样做了: 输入不会超过10个数字。这可以用比我这里更少的代码完成吗?我希望代码尽可能短。任何帮助都将不胜感激。谢谢!
问题内容: 如何在Python中进行时间延迟? 问题答案: 这是另一个示例,其中某件事大约每分钟运行一次:
我正在尝试使用Joda在一个简单的Java程序中获取UTC时间戳: 程序输出如下: 毫秒值是正确的UTC时间(即用时区确认)第二个值是时区。 我需要的是UTC值不变为(即独立于TZ),用于数据库写入。这可能吗? 我知道是本地日期(GMT-4),是UTC(GMT-0)。日期的输出值如下: 我尝试了所有组合,试图将的UTC值作为java.sql.TimeStamp: 用于测试的打印输出: 第一行是正确
问题内容: 在Go中进行日期比较是否有任何选择?我必须根据日期和时间- 独立地对数据进行排序。因此,我可以允许一个对象在一定日期范围内发生,只要它也在一定时间范围内出现即可。在此模型中,我不能简单地选择最旧的日期,最年轻的时间/最新的日期,最新的时间和Unix()秒来比较它们。我真的很感谢任何建议。 最终,我编写了一个时间解析字符串比较模块,以检查时间是否在范围内。然而,这并不顺利。我有一些大问题