Ich setze ein Kalenderdatum für einen Alarm zu gehen. Alarmzeit hat die Stunde, Minute, Format und Tag eingestellt. Ich möchte auch jetzt die Zeit ergreifen und den Unterschied vergleichen. Also, wenn die Alarmzeit am Mittwoch eingestellt ist und jetzt die Zeit Donnerstag ist, möchte ich, wie viele Tage zwischen Donnerstag und Mittwoch. Ich brauche auch Stunden und Minuten.Erhalten Sie den Unterschied zwischen zwei Kalendern
Ich habe jedes Beispiel versucht und nichts scheint zu funktionieren.
Java-Methode
private void setAlarm(final int position, int day){
alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
int amPm = 0 ;
String hourOfDay = mDataset.get(position).getHourOfDay();
String minute = mDataset.get(position).getMinute();
String format = mDataset.get(position).getTimeSet();
if("PM".equalsIgnoreCase(format)){
amPm = 1;
}else{
amPm = 0;
}
Calendar alarmTime = Calendar.getInstance();
alarmTime.set(Calendar.HOUR_OF_DAY, Integer.parseInt(hourOfDay));
alarmTime.set(Calendar.MINUTE, Integer.parseInt(minute));
alarmTime.set(Calendar.AM_PM,amPm);
alarmTime.set(Calendar.DAY_OF_WEEK, day);
Calendar now = Calendar.getInstance();
Ich habe versucht, dies zu versuchen.
alarmTime = Calendar.getInstance();
alarmTime.set(Calendar.HOUR_OF_DAY, Integer.parseInt(hourOfDay));
alarmTime.set(Calendar.MINUTE, Integer.parseInt(minute));
alarmTime.set(Calendar.AM_PM,amPm);
alarmTime.set(Calendar.DAY_OF_WEEK, day);
Calendar now = Calendar.getInstance();
long millis1 = now.getTimeInMillis();
long millis2 = alarmTime.getTimeInMillis();
long diff = millis1 - millis2;
long diffSeconds = diff/1000 % 60;
long diffMinutes = diff/(60 * 1000) % 60;
long diffHours = diff/(60 * 60 * 1000) % 24;
long diffDays = diff/(24 * 60 * 60 * 1000);
Es ist einfach nicht ganz richtig. Es sagt 2 Tage, also gehe ich davon aus, dass es den Alarmtag (Dienstag) bis Donnerstag (heute) dauert. Was ich brauche ist von Heute (Donnerstag) bis Dienstag. Das ist ungefähr 5 Tage von jetzt an. Die Stunden sollte etwa 5 Stunden, aber immer scheinen 12.
Wie kann ich den Unterschied von der aktuellen Zeit, um die Alarmzeit bekommen, dass ich Einstellung bin.?
Mögliches Duplikat von [Java-Kalender: Differenz zwischen zwei Daten/Zeiten erhalten - Aus mit Eins] (https://stackoverflow.com/questions/13198609/java-calendar-getting-difference-between-two-dates-times -off-by-one) – vinS
versuche 'millis2 - millis1' anstelle von' millis1 - millis2' –
habe ich das versucht und ich bekomme negative Zahlen und es ist immer noch nicht richtig – piddler