Java-获取给定两周和当前两周之间的差异
例如:Java-获取给定两周和当前两周之间的差异,java,date,calendar,Java,Date,Calendar,例如: 提供的数据: 2010年, 第二个月, 两周-1 当前日期 如何计算两个给定日期之间的两周数差异 这就是我想出来的,而且效果很好 Calendar c= Calendar.getInstance(); int year = 2011; int month = 6; int fortnight = 1; int noofmonths=(c.get(Calendar.YEAR)-year)*12; noofmonths=(noofmonths+((12-(month-1)+(c.get
提供的数据:
这就是我想出来的,而且效果很好
Calendar c= Calendar.getInstance();
int year = 2011;
int month = 6;
int fortnight = 1;
int noofmonths=(c.get(Calendar.YEAR)-year)*12;
noofmonths=(noofmonths+((12-(month-1)+(c.get(Calendar.MONTH)-12)))-1)*2;
int nooffortnights=noofmonths+((2-(fortnight-1)+((c.get(Calendar.DAY_OF_MONTH)<15?1:2)-2)))-1;
System.out.println("nooffortnights : "+nooffortnights); //outputs 5
Calendar c=Calendar.getInstance();
国际年=2011年;
整月=6;
int两周=1;
整数月=(日历年)-年)*12;
noofmonths=(noofmonths+((12-(第1个月)+(c.get(日历月)-12))-1)*2;
int nooffortnights=noofmonths+((2-(fortnight-1)+)((c.get(Calendar.DAY\u OF_MONTH)这取决于你对两周的定义。如果我们是字面意思,那么两周被定义为14天,因此计算天数并除以14,工作完成
我怀疑,在您的案例中,我们实际上使用的是一个特殊的业务日历,其中两周是季度的一部分,因此存在一些特殊情况-一年不完全分为两周,也许业务年度不从1月1日开始?因此,在某个地方会有一个明确的ea开始日期列表一年两周
让我们假设两周的定义
17th Nov - 1st Dec
2nd Dec - 15th Dec
16th Dec - 31st Dec (note this is 15 days long)
从11月17日到12月16日的两个星期的定义是什么?我猜是2。从11月19日到12月16日?我不知道你会期待什么答案
因此,首先,要弄清楚业务需求是什么。我会感到惊讶的是,你会发现现成的日期包可以理解两周,但即使你这样做了,你也需要非常仔细地检查它们是否给出了你需要的答案。假设你想在没有任何第三方库的情况下这样做
制作2个Calendar
对象(都带有给定的日期)
请注意,这是一个粗略的近似值。这是什么数据类型?你自己制作了日期类?你如何计算两周?每年?每月?它们总是从一年或一个月的第一天开始吗?它们总是14天吗?你好!我知道这是7年前的事,与我目前想要实现的目标仍然相关!!请问,这些是什么为了得到两周的时间,您需要增加多少个成员?另外,是否可以在Java8中完成这项工作,而不是像当年那样使用Calendar对象?
Calendar c1 = Calendar.getInstance(),c2 = Calendar.getInstance();
c1.add(Calendar.MONTH, 2);
int fortnights = (int)((c1.getTimeInMillis() - c2.getTimeInMillis()) / (14L * 24 * 60 * 60 * 1000));
System.out.println(fortnights); //output should be 4