从现在起计算某个时间段的日期

时间:2014-09-24 04:11:12

标签: android android-calendar

我有一个开始日期(日,月,年),需要从该日期算起4周的日期。我该如何计算呢?我知道如何使用日历找到两个日期之间的差异,所以我假设我离答案不太远......谢谢!!!

编辑:

这是我最后使用的代码。它返回一个String,其值为日期范围,格式为“MM / dd / YYYY - MM / dd / YYYY”

@SuppressLint("SimpleDateFormat")
private String getSessionDate(int position) {
    MySession ms = mSessionList.get(position);
    SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy");

    Calendar calendar = Calendar.getInstance();
    calendar.set(ms.getStartYear(), ms.getStartMonth(), ms.getStartDay());

    Date startDate = calendar.getTime();


    String durationString = ms.getDurationString();   // Format is "## weeks"
    int i = 0;
    while (Character.isDigit(durationString.charAt(i))) {
        i++;
    }

    int weeks = Integer.parseInt(durationString.substring(0, i));


    calendar.add(Calendar.WEEK_OF_YEAR, weeks);

    return (format.format(startDate) + " - " + format.format(calendar.getTime()));
}

2 个答案:

答案 0 :(得分:5)

您可以使用Calender实例。

    Calendar calendar = Calendar.getInstance();
    calendar.setTime(currentdate);
    calendar.add(Calendar.DAY_OF_YEAR, no_of_days)
    Date newDate = calendar.getTime();

您可以通过添加或减去天数来计算日期

示例:

1周后获取日期

calendar.add(Calendar.DAY_OF_YEAR, 7);

在1周前获取日期

calendar.add(Calendar.DAY_OF_YEAR, -7);

答案 1 :(得分:3)

            Date date=null;
            SimpleDateFormat originalFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

            try {
                date = originalFormat.parse(strDate); // strDate is your date from which you want to get date after 4 weeks
            } catch (Exception e) {
                e.printStackTrace();
            }


            long timeFor4week=4*7*24 * 60 * 60 * 1000; /// here 24*60*60*1000 =24 hours i.e 1 day
            long timeAfter4week=date.getTime()+timeFor4week;
            String finalDateString=originalFormat.format(new Date(timeAfter4week));

所以你可以在4周后获得一天。