2012-09-13 230 views
0

我正在开发Android应用程序,在该应用程序如何计算基于开始日期和天数的结束日期?例如我有开始日期2012年9月13日,如果我加45那天的日期我会得到2012年10月27日。如何计算日期?我有天+开始日期和查找结束日期

如何做到这一点?

我不能在if语句中使用date函数。

我的代码:

F(resCrop.equals( “稻田”)){

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

确切副本的http://stackoverflow.com/questions/428918/how-can-i-increment-a-date-by-one-day-in-java ... –

回答

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); 
+0

优秀。谢谢很多chirag raval。它的工作正常。感谢您的即时答复。 –

+0

如果我想为100多个编辑文本实现此计算。我能为它做些什么。我必须为每个编辑文本编写此代码? –

+0

@MadhanShanmugam不,你必须做一个功能,因为你必须传递开始日期和添加天数,这将返回结束日期。所以不需要为所有的edittext编写代码。 –

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); 
+0

谢谢为您的直接响应。它的工作正常。 –

0

你好马德汉,

  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

+0

他不想要剩下的日子,他想在结束日期后添加一些日期开始日期。 –

+1

Hello Chirag其非常简单EndDate = Remainsdate + StartDate 1stly将剩余日期转换为毫秒,然后执行此项工作。意味着EndDate = Remainsdate + StartDate – AndroidDanger

相关问题