如何使用另一个上一个日期作为参考来获取上一个日期

时间:2015-03-02 12:17:49

标签: java date calendar

我正试图在10天的时间内从gmail收件箱中获取邮件。

我需要一种计算日期的方法,如下所示:

Date toDate = new Date();//for the first time it will be a present date
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -10);           
Date fromDate = calendar.getTime();//This date will be 10 days before today.

在下一次迭代中,我想要来自" fromDate"到日期前10天" fromDate"。 现在,

toDate = fromDate ; //and 
fromDate = fromDate-10;

请告诉我如何实现这一目标。 我能够在第一次迭代中得到东西。我在其余的迭代中被困住了。

4 个答案:

答案 0 :(得分:0)

然后from the "fromDate" to 10 days before "fromDate"表示今天前20天。

    Calendar calendar = Calendar.getInstance();
    System.out.println(calendar.getTime());
    calendar.add(Calendar.DATE, -10); // 10 days before today
    Date toDate = calendar.getTime();
      // remember now your calendar instance 10 days older than today
      // so reduce 10 more days equals to 20 days before today
    calendar.add(Calendar.DATE,-10); // another 10 days before today
    Date fromDate=calendar.getTime();
    System.out.println("from date: "+fromDate);
    System.out.println("to date: "+toDate);

答案 1 :(得分:0)

您可以使用setTime(Date d)课程中的Calendar将其初始化为您想要的任何日期。然后,如果您之前已设置过日期,则可以应用另一个偏移

   Date toDate = new Date();
   Calendar cal = Calendar.getInstance();
   cal.add(Calendar.DATE, -10);
   Date fromDate = cal.getTime(): // 10 days back from now

稍后,重新使用Calendar实例(如果可用),或者创建一个使用fromDate初始化的新实例。以下示例假设您只有fromDate

   Calendar cal = Calendar.getInstance();
   cal.setTime(from); // which is 10 days back
   cal.add(Calendar.DATE, -10);
   Date fromFromDate = cal.getTime(): // now 20 days back

答案 2 :(得分:0)

这是返回过去日期的实用程序方法。

例如,如果您想在20天之前获取日期,则在此方法中输入20作为输入。它将在20天之前返回您的日期

public static Date getPastDate(int dayCount) 
{
    try 
    {
        Calendar cal = Calendar.getInstance();
        cal.setTime(new Date());
        int daysToSubstract = dayCount * (-1);
        cal.add(Calendar.DATE, daysToSubstract);
        Date dateBefore30Days = cal.getTime();
        return dateBefore30Days;

    } 
    catch (Exception e) 
    {
            e.printStackTrace();
            return null;
    }
}

输入: 20

输出: 2月10日星期二17:58:30 IST 2015

希望这有助于你

答案 3 :(得分:0)

这就是你的代码在循环中的样子。

    int numberOfIterations = 3;

    Date toDate = new Date();
    Date fromDate = null;
    Calendar calendar = Calendar.getInstance();

    for (int i = 0; i < numberOfIterations; i++) {
        calendar.add(Calendar.DATE, -10);
        fromDate = calendar.getTime();
        System.out.println(fromDate + " - " + toDate);
        toDate = fromDate;
    }