计算日期

时间:2012-10-12 06:14:22

标签: java android

朋友我从用户那里得到两个输入

1.InitDate from DatePicker
2.Difference in between two dates (numberOfDates)

我需要计算FinalDate,以便

FinalDate=InitDate+numberOfDates

到目前为止我做了什么

private void CalcLastDate(int days) 
        {

long millis=days*24*60*60;

            Calendar c = Calendar.getInstance();

            c.set(settingsFromDate.getYear(), settingsFromDate.getMonth(), settingsFromDate.getDayOfMonth());
            long initDate = c.getTimeInMillis();

            long longFinalDate=initDate+millis;

}

3 个答案:

答案 0 :(得分:2)

试试这个:

Calendar cal = Calendar.getInstance();
cal.setTime(initDate); //initDate must be of java.util.Date
cal.add(Calendar.DAY_OF_MONTH, numberOfDates);

您可以通过以下方式获取最终日期:

Date finalDate = cal.getTime();

而且您不必使用第三方API。

答案 1 :(得分:1)

使用Joda DateTime libraryDateTime#plusDays会增加几天。

//Initialize your date
DateTime dateTime = DateTime(...);

dateTime.plusDays(days);

非常容易处理日期,此库将添加到Java 8中。

答案 2 :(得分:0)

你可能会做类似的事情。

private DatePicker initPicker;
dp = (DatePicker) findViewById(R.id.initPicker);
final Calendar c = Calendar.getInstance();
    c.set(Calendar.YEAR,initPicker.getYear());
    c.setMonth(Calendar.MONTH,initPicker.getMonth());
    c.setDayOfMonth(Calendar.DAY_OF_MONTH,initPicker.getDayOfMonth());
long millis = c.getTimeInMillis();

对于不同的日期选择器对象。然后按照你需要的顺序加上或减去millis。