如何计算日期?我有天+开始日期和查找结束日期

时间:2012-09-13 11:27:09

标签: android date calculator

我正在开发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语句中没有工作。如果我在外面使用,如果它的工作正常。如何解决这个问题。请告诉我。

3 个答案:

答案 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

进行操作