【问题标题】:How to calculate date? I have of Days + Start Date and Find end Date如何计算日期?我有天 + 开始日期并找到结束日期
【发布时间】:2012-09-06 11:27:57
【问题描述】:

我正在开发 android 应用程序,在该应用程序中如何根据开始日期和天数计算结束日期?例如,如果我在该日期加上 45 天,我的开始日期是 2012 年 9 月 13 日,我将得到 2012 年 10 月 27 日.

怎么做?

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

我的代码:

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 语句中不起作用。如果我在外面使用,如果它工作正常。如何解决这个问题。请给我建议。

【问题讨论】:

标签: android date calculator


【解决方案1】:

试试这个代码。您可以使用任何您想要的日期格式。

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

【讨论】:

  • 优秀。非常感谢 chirag raval。它工作正常。感谢您的即时答复。
  • 如果我想为超过 100 个编辑文本实现此计算。我能为它做些什么。我必须为每个编辑文本编写此代码?
  • @MadhanShanmugam 不,您必须创建一个函数,因为您必须传递开始日期和要添加的天数,这将返回结束日期。所以不需要为所有的edittext编写代码。
  • 我已经接受了您的回答并检查了接受的符号。感谢 chirag raval,我完成了这项任务。实际上我是 android 开发的新手。
【解决方案2】:

您可以使用以下代码来解决您的问题。

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

【讨论】:

    【解决方案3】:

    你好,马丹,

              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

    【讨论】:

    • 他不想要剩余天数,他想要在开始日期加上一些天后的结束日期。
    • Hello Chirag 它非常简单 EndDate = Remainsdate+StartDate 1stly 您将剩余天数转换为毫秒,然后执行此工作。表示 EndDate = Remainsdate+StartDate
    猜你喜欢
    • 2019-12-18
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多