2017-08-29 4 views
-11

S'il vous plaît fournir le code pour cette question, j'ai le code pour calculer la différence entre la date où je peux vérifier que la date est terminée ou non, mais comment calculer temps en heures si la différence de date plus de 1 jourComment calculer l'heure entre les dates actuelles et les dates de fin (Android)

  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
      SimpleDateFormat timesdf = new SimpleDateFormat("HH:mm"); 
      currentitme = timesdf.format(new Date()); 

      currentDateandTime = sdf.format(new Date()); 
      try { 
       date1 = sdf.parse(currentDateandTime); 
       date2 =sdf.parse(auctionBean.getEnddate()); 
       timeend = timesdf.parse(auctionBean.getEndtime()); 
       if (date1.equals(date2)){ 

        compareTimes("11:50:00"); 

       } 
       else if (date1.after(date2)){ 
        Log.e("222","111"); 

       } 
       else if (date1.before(date2)){ 

        Log.e("333","111"); 
       } 

      } catch (ParseException e) { 
       e.printStackTrace(); 
      } 





private void compareTimes(String endtime) throws ParseException { 

     SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); 
      timeend = dateFormat.parse(endtime); 

     timecurrent = dateFormat.parse(dateFormat.format(new Date())); 

     if (timecurrent.after(timeend)) 
     { 
      Log.e("time is finish",""); 
     } 
    } 
+4

** S'il vous plaît fournir le code pour cette question .. ?? ** ce n'est pas le site tutoriel mon ami –

+1

question similaire 12 mins ago ?? https: //stackoverflow.com/questions/45932344/diff-bw-current -date-timejavaand-end-datetime – Raghavendra

+1

Vote de clôture hors-sujet. @Raghavendra s'ils sont similaires (je ne peux pas valider), utilisez le drapeau mod sur cette question. – Zoe

Répondre

-1

Vous pouvez obtenir la différence de temps entre la date avec JodaTime

DateTime startTime, endTime; 
Period p = new Period(startTime, endTime); 
int hours = p.getHours(); 
int minutes = p.getMinutes(); 
+0

monsieur j'ai Date de fin 31-08-2017 et l'heure de fin 14:10 et comment calculer ce temps à partir du courant –

+0

essayer de convertir tous les temps en millis et obtenir differernce –

+0

Thanxs @ Gupta monsieur vous économisez mon temps –

-1

S'il vous plaît utiliser le code ci-dessous mentionné

public static boolean isBefore(Calendar cal, String startTime) { 
    if (cal == null || startTime == null) { 
     return true; 
    } 

    if (!startTime.contains(":")) { 
     return false; 
    } 


    int startHour = getHourOfDayOrMinute(startTime, true); 
    int startMin = getHourOfDayOrMinute(startTime, false); 

    Calendar now = DateUtil.getCurrentLocalCalendar(cal.getTimeZone().getID()); 
    now.set(Calendar.HOUR_OF_DAY, startHour); 
    now.set(Calendar.MINUTE, startMin); 

    if (now.after(cal)) { 
     return true; 
    } 

    int calHour = cal.get(Calendar.HOUR_OF_DAY); 
    int calMin = cal.get(Calendar.MINUTE); 


    if (calHour < startHour) { 
     return true; 
    } else if (calHour == startHour) { 
     if (calMin <= startMin) { 
      return true; 
     } else { 
      return false; 
     } 
    } 
    return false; 
} 

public static int getHourOfDayOrMinute(String hhmmAMPM, boolean getHour) { 
    String[] time = hhmmAMPM.split(":"); // 6:00 PM 
    int hour = NumberUtil.toInt(time[0], 0); // 6 
    String s = null; 
    if (!getHour) { 
     if (time[1].contains(" ")) { 
      s = time[1].substring(0, time[1].indexOf(" ")); // 00 PM 
     } else { 
      s = time[1].substring(0, time[1].length() - 2); // 00 PM 
     } 

     return NumberUtil.toInt(s, 0); 
    } 
    if (time[1].trim().endsWith("PM")) { 
     if (hour < 12) { 
      hour += 12; 
     } 
    } 
    return hour; 
} 
0
public static long getValidDateTimeLong(String dateTime) { 
    long time = 0; 
    try { 

     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
     time = simpleDateFormat.parse(dateTime).getTime(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return time; 
} 

ajouter ci-dessous le code où vous voulez

long endTime = getValidDateTimeLong(productListItemModel.getEndDate()); 
      timeDiff = endTime - System.currentTimeMillis() 
      if (timeDiff > 0) { 
       int day = (int) TimeUnit.SECONDS.toDays(timeDiff/1000); 
       int hours = (int) TimeUnit.SECONDS.toHours(timeDiff/1000) - (day * 24); 
       int minutes = (int) (TimeUnit.SECONDS.toMinutes(timeDiff/1000) - (TimeUnit.SECONDS.toHours(timeDiff/1000) * 60)); 
       int seconds = (int) (TimeUnit.SECONDS.toSeconds(timeDiff/1000) - (TimeUnit.SECONDS.toMinutes(timeDiff/1000) * 60)); 
       days = String.valueOf(day); 
       hrs = String.valueOf(hours); 
       mins = String.valueOf(minutes); 
       sec = String.valueOf(seconds); 
      } 

il retournera jours, heures, minutes, secondes

si vous voulez seulement quelques heures, coller uniquement le code suivant

if ((86400 * 1000) < timeDiff) { //86400 is seconds per day. then converted it into milli seconds. then checked the condition 
    int hours = (int) TimeUnit.SECONDS.toHours(timeDiff/1000) ; 
    hrs = String.valueOf(hours); 
} 

Espérons que cela aide.