有条件地在当前日期添加特定天数?

时间:2013-02-04 12:08:09

标签: java algorithm

所以问题是我从服务器得到了一个日期,我想根据当前日期和我从服务器获得的日期之间的差异来添加特定日期。

  

serverDate - currentDate

工作:这是我计算天数之间差异的方法,

String s=formater.format(currentDate);
long d1 = formater.parse(s).getTime();
long d2=formater.parse(serverDate).getTime();
int totaldays=(int)Math.abs((d1-d2)/(1000*60*60*24));

工作:要在当前日期的5天内添加日期,

    if(totaldays==5)
        {
        Calendar c=Calendar.getInstance();
        c.add(Calendar.DATE, 0);
        System.out.println("value of new server date "+c.getTime());
        }

   else if(totaldays==4)
        {
        Calendar c=Calendar.getInstance();
        c.add(Calendar.DATE, 1);
        System.out.println("value of new server date "+c.getTime());
        }

else if(totaldays==3)
        {
        Calendar c=Calendar.getInstance();
        c.add(Calendar.DATE, 2);
        System.out.println("value of date "+c.getTime());
        }

else if(totaldays==2)
        {
        Calendar c=Calendar.getInstance();
        c.add(Calendar.DATE, 3);
        System.out.println("value of new server date "+c.getTime());
        }

else if(totaldays==1)
        {
        Calendar c=Calendar.getInstance();
        c.add(Calendar.DATE, 4);
        System.out.println("value of new server date "+c.getTime());
        }

else if(totaldays==0)
            {
            Calendar c=Calendar.getInstance();
            c.add(Calendar.DATE, 0);
            System.out.println("value of new server date "+c.getTime());
            }

最终:我可能需要修改此用例,总天数与大数的差异因此,在这种情况下,我需要增加比较或是否有任何技巧可用于达到特定日期。

2 个答案:

答案 0 :(得分:4)

例如,使用名为MAX的变量。在您的代码中应该像

int max = 5;

然后你可以这样做:

c.add(Calendar.DATE, max - totaldays);

c.add(Calendar.DATE, 5 - totaldays);

答案 1 :(得分:1)

好的,从问题的评论中,我试着改写一下要求:

totaldays(差距)是serverDatecurrentDate

之间的差异
  • 如果间隙<5,则间隙变为5
  • if gap = 5,什么都不做
  • if gap&gt; 5,添加与serverDate的差距

如果上面写的是真的那么

  • 第一次计算totaldays

然后一行就能解决你的问题:

c.add(Calendar.DATE, totaldays>5?totaldays:5-totaldays);
顺便说一句,你应该在你的问题中清楚地描述你需要什么。祝你好运!