例如:
给出的数据:


2010年
           第二个月,
           两周一
当前的日期


如何获得两个给定日期之间的两周数差异?



这是我想出来的,并且可以正常工作...

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

最佳答案

这取决于您对两周的定义。如果我们字面意思,那么将两周定义为14天,因此计算天数并除以14,将完成的工作除以14。

我怀疑在您的情况下,我们实际上使用的是特殊的业务日历,其中两周是季度的细分,因此有一些特殊情况-一年不完全划分为两周,也许该业务年度不会在1月1日开始?因此,在某处将有一年中每个两周开始日期的确定列表。

假设两周的定义有

 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日?我不知道你会期望什么答案。

首先,要弄清楚业务需求是什么。我会惊讶的是,您会发现可以两周使用的现成日期软件包,但是即使您这样做,也需要非常仔细地检查它们是否提供了所需的答案。

关于java - Java-获取给定的两周与当前两周之间的差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7143757/

10-09 05:08