所以问题是我从服务器得到了一个日期,我想根据当前日期和我从服务器获得的日期之间的差异来添加特定日期。
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());
}
最终:我可能需要修改此用例,总天数与大数的差异因此,在这种情况下,我需要增加比较或是否有任何技巧可用于达到特定日期。
答案 0 :(得分:4)
例如,使用名为MAX的变量。在您的代码中应该像
int max = 5;
然后你可以这样做:
c.add(Calendar.DATE, max - totaldays);
或
c.add(Calendar.DATE, 5 - totaldays);
答案 1 :(得分:1)
好的,从问题的评论中,我试着改写一下要求:
totaldays
(差距)是serverDate
和currentDate
如果上面写的是真的那么
totaldays
然后一行就能解决你的问题:
c.add(Calendar.DATE, totaldays>5?totaldays:5-totaldays);
顺便说一句,你应该在你的问题中清楚地描述你需要什么。祝你好运!