2016-11-17 2 views
-1

Ich habe die Systemzeit in einer Zeichenfolge zum Beispiel so wie "1240". dann wollte ich etwas tun, wenn die Systemzeit < als 1240 war, dann schließe die Anwendung. aber es gibt mir der "Operator '<' kann nicht auf java.lang.String angewendet werden!" Error!Operator '<' kann nicht angewendet werden auf 'java.lang.String'

Mein Code ist:

  runOnUiThread(new Runnable() { 
      public void run() { 
       try{ 
        TextView txtCurrentTime= (TextView)findViewById(R.id.showtime); 
        Date dt = new Date(); 
        int hours = dt.getHours(); 
        int minutes = dt.getMinutes(); 
        int mynum = 1240; 
        String curTime = hours + "" + minutes; 
        txtCurrentTime.setText(curTime); 
        if(curTime < mynum){ 
         System.exit(0); 
        } 
       }catch (Exception e) {} 
      } 
     }); 

Was ist das Problem?

+2

ist "Hallo" < "Welt" wahr? oder falsch? –

+0

Operator '<' kann nicht auf java.lang.String angewendet werden! Das ist das Problem –

+2

Beachten Sie den Fehlertest: Operator ' DwB

Antwort

1

< ist nicht für eine Zeichenfolge und eine Int natürlich definiert. Du kannst es also nicht benutzen.

Ihre aktuelle Zeit kann wie folgt berechnet werden:

int curTime = 100*hours + minutes; 

dann können Sie < zwischen zwei ganzen Zahlen verwenden.

Ich glaube, obwohl Sie System Milliseconds verwenden müssen, was üblicher ist.

+0

System Milliseconds können nicht verwendet werden, außer Sie möchten sich selbst Zeitzonen ausgleichen – Andreas

0
if(hours * 100 + minutes < mynum){ 
    System.exit(0); 
} 
1

try {

SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss"); 
String str1 = String.valueOf(hours1) + ":" + String.valueOf(minutes1) + ":" + "00"; 
String str2 = String.valueOf(hours2) + ":" + String.valueOf(minutes2) + ":" + "00"; 
Date date1 = formatter.parse(str1); 
Date date2 = formatter.parse(str2); 

if (date1.compareTo(date2)<0) 
    { 
    //  if date2 > date1     
    } 

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

formats for dates

Check-Datum/Uhrzeit wie pro Ihre Anforderung von hier

+0

Wie hilft das, wenn OP versucht, "1620" <1240 ", dh Stunden und Minuten, nicht Tag/Monat/Jahr zu vergleichen? – Andreas

+0

erstellen eine Zeichenfolge durch Anhängen von Stunden und Minuten im "H: mm" -Format, dann benutze simplydateformat, um sie in Datum und Vergleich zu parsen. Ich habe eine Referenz für Pattern su zur Verfügung gestellt pported by simpledateformat – Bali

+0

Eine Antwort ist viel nützlicher, wenn sie auf die Frage zugeschnitten ist und nicht nur eine einfache Antwort ist. In diesem Fall würde das bedeuten, das Code-Format Stunden und Minuten, nicht Tag/Monat/Jahr zu machen, da es sich nicht um Daten handelt, sondern um Zeiten. Diese Antwort ist sogar eine schlechte Standardantwort, mit dieser dummen 'Fang'-Klausel am Ende, da das Dump-Stacktrace und die fortgesetzte Ausführung, als ob nichts schief gegangen wäre, ein wirklich schlechtes Beispiel zu machen wäre. – Andreas

Verwandte Themen