HARSH ASHRA
HARSH ASHRA

Reputation: 316

Android - Subtract current time from the time selected from TimePicker

I wanna subtract the current time from the time that has been selected from Time Picker i.e. SelectedTime - Current Time. So, I know how to get the current time and selected time from time picker.

Here is the Code.

public class ScheduleMessage extends AppCompatActivity {

    TextView textView;
    TimePicker timePicker;
    String date, currentTime;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_schedule_message);

        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm ");
        currentTime = timeFormat.format(calendar.getTime());

        timePicker = findViewById(R.id.simpleTimePicker);
        textView = findViewById(R.id.selectedTime);
        timePicker.setOnTimeChangedListener( new TimePicker.OnTimeChangedListener() {

            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                date = hourOfDay + ":" + minute;
                textView.setText(date + "---" + currentTime);
            }

        });

    }
}

So, How can I subtract it? Any Help?

Upvotes: 0

Views: 1019

Answers (2)

Jyotish Biswas
Jyotish Biswas

Reputation: 574

If you have strings you need to parse them into a java.util.Date using java.text.SimpleDateFormat. Something like:

 java.text.DateFormat df = new java.text.SimpleDateFormat("hh:mm:ss");
    java.util.Date date1 = df.parse("18:40:10");
    java.util.Date date2 = df.parse("19:05:15");
    long diff = date2.getTime() - date1.getTime();

Upvotes: 1

Cyrille Con Morales
Cyrille Con Morales

Reputation: 957

In determining the difference between date you can do somthing like this

SimpleDateFormat format = new SimpleDateFormat("hh:mm:ss aa");// or you can add before dd/M/yyyy

Date date1 = format.parse("08:00:12 pm");
Date date2 = format.parse("05:30:12 pm");

long mills = date1.getTime() - date2.getTime();
               
int hours = (int) (mills/(1000 * 60 * 60));
int mins = (int) (mills/(1000*60)) % 60;

String diff = hours + ":" + mins;

Upvotes: 1

Related Questions