我正在开发Android应用程序,在该应用程序中如何计算基于开始日期和天数的结束日期?例如我有开始日期2012年9月13日如果我添加45天与该日期我将得到2012年10月27日
怎么做?
我不能在if语句中使用date函数。
我的代码:
f(resCrop.equals(“Paddy”)) {
if(rescultivation1.equals("Conventional method - Delta"))
{
if(resvariety1.equals("Short duration"))
{
WA.setVisibility(View.VISIBLE);
TONE.setVisibility(View.VISIBLE);
TTWO.setVisibility(View.VISIBLE);
TTHREE.setVisibility(View.VISIBLE);
//date calculation
SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy");
Calendar c1 = Calendar.getInstance(); // Get Calendar Instance
try {
c1.setTime(sdf.parse(resDate));
} catch (ParseException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
c1.add(Calendar.DATE, 3); // add 3 days
sdf = new SimpleDateFormat("dd-M-yyyy");
Date resultdate = new Date(c1.getTimeInMillis()); // Get new time
String dateInString = sdf.format(resultdate);
WP.setText(dateInString);
WP.setEnabled(false);
Calendar c2 = Calendar.getInstance();
c2.add(Calendar.DATE, 35); // add 45 days
sdf = new SimpleDateFormat("dd-M-yyyy");
}
}
}
它在if语句中没有工作。如果我在外面使用,如果它的工作正常。如何解决这个问题。请告诉我。
答案 0 :(得分:4)
试试这段代码。您可以使用您想要的任何日期格式。
String dateInString = "2011-09-13"; // Start date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance(); // Get Calendar Instance
c.setTime(sdf.parse(dateInString));
c.add(Calendar.DATE, 45); // add 45 days
sdf = new SimpleDateFormat("MM/dd/yyyy");
Date resultdate = new Date(c.getTimeInMillis()); // Get new time
dateInString = sdf.format(resultdate);
System.out.println("String date:"+dateInString);
答案 1 :(得分:1)
您可以使用以下代码解决您的问题。
Calendar cal=Calendar.getInstance();
int currentDay=cal.get(Calendar.DAY_OF_MONTH);
//Set the date after 45 days
cal.set(Calendar.DAY_OF_MONTH, currentDay+45);
int EndDay=cal.get(Calendar.DAY_OF_MONTH);
答案 2 :(得分:0)
Hello Madhan,
Plz Convert ur date into milli second and then differentiate it and divided it by 1000*60*60*24.
请参阅代码片那样
Date d1 = new Date(1st Date);
Date d2 = new Date(2nd Date);
Calendar cal1 = Calendar.getInstance();
cal1.setTime(d1);
Calendar cal2 = Calendar.getInstance();
cal2.setTime(d2);
presumedDays = (int) ((cal2.getTimeInMillis() - cal1.getTimeInMillis()) / (1000 * 60 * 60 * 24));
它会给你留下好几天。您也可以按照Click Here 进行操作