-1

Here user will select the event Date...I know some suggestions are available for calendar based dates(current dates)....But my question is different because i have event date that will be select by user....I want to adjust reminder date from event date(particular date not for current date)...In my code i need to adjust 7 days(subtract 7 days) from the event date...I don't know how to do that...Please help me to find out the code

checkBox_aWeekBefore.setOnClickListener(new View.OnClickListener() {

                public void onClick(View v) {
                    if (((CheckBox) v).isChecked()) {
                        final int response = 3;
                        reminterDate=eventMO.getEventDate();
    //here i need to adjust eventDate and i need to adjust 7 days from EventDate and set that to reminder
                        List<EventReminderDaysMO> eventReminderDaysMOs = new ArrayList<>();

                        EventReminderDaysMO eventReminderDaysMO = new EventReminderDaysMO();
                        eventReminderDaysMO.setTypeId(3);
                        eventReminderDaysMO.setIsSelected(1);
                        eventReminderDaysMO.seteventReminderDate
                           (reminderdate);

                        eventReminderDaysMOs.add(eventReminderDaysMO);
                  eventMO.setEventReminderDaysMOs(eventReminderDaysMOs);

                        Toast.makeText(OccasionActivity.this,
                                "Checked", Toast.LENGTH_LONG).show();
                    }
                }
            });

This is my date formate

DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); // Here use what format you use.
                       Date date1 = dateFormat.parse(eventDate);
                       DateFormat convertDate = new SimpleDateFormat(" yyyy-MM-dd hh:mm:ss");
                       eventDate = convertDate.format(date1);
                       eventMO.setEventDate(eventDate);
  • show more code about what's `reminterDate` format and how you declared it – cw fei Sep 22 '15 at 06:40
  • in which format you want date and what is the format of reminterDate ? – KishuDroid Sep 22 '15 at 06:43
  • 2
    possible duplicate of [How to subtract X days from a date using Java calendar?](http://stackoverflow.com/questions/212321/how-to-subtract-x-days-from-a-date-using-java-calendar) – Emil Sep 22 '15 at 06:43
  • @ cw fei for this check box week before i need to set reminder date as week before i mean 7 days before....So i need to adjust the reminder date from the event date....After that i will pass that reminder date to data base – sathya. nagaraj19 Sep 22 '15 at 06:48
  • @ KishuDroid I want to use that in String formate – sathya. nagaraj19 Sep 22 '15 at 06:48

2 Answers2

1

Use:

String date = "22-10-2015";
SimpleDateFormat format = new SimpleDateFormat("dd-mm-yyyy");
try {
        Date d = format.parse(date);
        Date dateBefore = new Date(d.getTime() - 7 * 24 * 3600 * 1000l ); 
        System.out.print(format.format(dateBefore)); // print 15-10-2015
    }
    catch(ParseException pe) { 

    }

Replace the date "22-10-2015" with your event date (according to your date's format), change the SimpleDateFormat's format to your existing date's format too. The 7 represents 7 days, change it to whatever you want.

cw fei
  • 1,534
  • 1
  • 15
  • 33
  • I think this is for calendar (current dates)...I have event date here...i need to adjust reminder date from the event date...Event date will be select by user – sathya. nagaraj19 Sep 22 '15 at 06:57
  • that's why i need to know what's the event date format – cw fei Sep 22 '15 at 06:57
  • For example: i have a date picker to select a date...consider event date is 30-09-2015....In my check box week before i need to set reminder date 7 days before...So i need to adjust that to 27-09-2015....After that i will pass that to data base....Based on that reminder will be set – sathya. nagaraj19 Sep 22 '15 at 07:03
  • what @cwfei is asking whether the reminterDate is a string or date. – arun Sep 22 '15 at 07:05
1

Try this:

// If reminterDate is a string

DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); // Here use what format you use.
Date date1 = dateFormat.parse(reminterDate);;
Calendar calendar = Calendar.getInstance(); 
calendar.setTime(date1 );
calendar.add(Calendar.DAY_OF_MONTH, -7);
date1 = calendar.getTime();

reminterDate = dateFormat.format(date1);


//Change this format
DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
Date date1 = dateFormat.parse(eventDate);

eventDate = dateFormat.format(date1);
eventMO.setEventDate(eventDate);
arun
  • 1,728
  • 15
  • 15
  • DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); // Here use what format you use. Date date1 = dateFormat.parse(eventDate); DateFormat convertDate = new SimpleDateFormat(" yyyy-MM-dd hh:mm:ss"); eventDate = convertDate.format(date1); eventMO.setEventDate(eventDate); – sathya. nagaraj19 Sep 22 '15 at 07:21
  • @sathya.nagaraj19 change the date format on your setEventDate – arun Sep 22 '15 at 08:03