实施默认范围选择器,我希望用户指定默认范围
所以在我的范围内 我有
1 day = 24 hours
3 days = 24 * 3 hours
1 week = 24 * 7 hours
1 month
我的逻辑是使用一天中的总小时数并乘以总天数
但现在当问题范围变得超过2个月时会出现问题,因为有些月份有31天,28天甚至30天
那我怎么去确定最近两个月的例子小时数,以便在我的日历中我可以简单地
Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR, cal.get(Calendar.HOUR) - hours) //stuck here
以简单的术语示例
今天是4月2日,我如何获得从1月2日到4月2日的小时数。
在我自己的逻辑中它超过一个月应该看起来像:
Date today = Date.now();
LocalDate userday = LocalDate.of(less number of months);
Period diff = Period.between(userday, today);
答案 0 :(得分:2)
试试这个
% enumerate all people and
% return the ones that aren't rich
isPoor(P) :-
owns(P,_),
\+ isRich(P).
更新的答案:
Calendar calendar = Calendar.getInstance();
calendar.set(2018,Calendar.JANUARY, 2);
Long min = calendar.getTimeInMillis();
calendar.set(2018,Calendar.APRIL, 2);
Long max = calendar.getTimeInMillis();
Long range = (max - min) / (60*60*1000); //no_of_hours
答案 1 :(得分:2)
您可以像下面一样减去月份,
Date referenceDate = new Date();
Calendar c = Calendar.getInstance();
c.setTime(currentDate);
c.add(Calendar.MONTH, -3);
return c.getTime();
然后从下面的代码中获取数小时。
long diff = currentDate.getTime() - previousDate.getTime();
long hours = minutes / (1000 * 60 * 60);
答案 2 :(得分:0)
您需要一个月内的天数。
一旦确定它是哪个月,它很容易:
看看这个: Number of days in particular month of particular year?
一旦你有月份,只需计算它的小时数,并继续添加,直到你满足你的范围。