Tom McFarlin
Tom McFarlin

Reputation: 829

Calculating date certain period from now

I have a start date (day, month, year) and need the date say 4 weeks from that date. How can I calculate that? I know how to find the difference between two dates using Calendar so I assume I'm not too far from the answer... Thank you!!!

edit:

This is the final code I wound up using. It returns a String whose value is a date span formatted "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()));
}

Upvotes: 1

Views: 1391

Answers (2)

Beena
Beena

Reputation: 2354

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

So you can get day after 4 weeks.

Upvotes: 3

SweetWisher ツ
SweetWisher ツ

Reputation: 7306

You can use Calender instance for that.

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

You can calculate the date by adding or subtracting the no of days

Example :

Get date after 1 week

calendar.add(Calendar.DAY_OF_YEAR, 7);

Get date before 1 week

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

Upvotes: 5

Related Questions