2016-04-29 2 views
0

In meinem Programm habe ich eine Visit-Schaltfläche, mit der ein Benutzer sehen kann, wie oft ein Techniker sich am Server angemeldet hat. Die Schaltfläche sollte die verschiedenen Daten und Uhrzeiten anzeigen, an denen sich der Techniker angemeldet hat. Es werden jedoch das Datum und die Uhrzeit angezeigt, zu denen sich der Techniker zum ersten Mal beim Server angemeldet hat. Jede Hilfe wäre hilfreich.Visit-Schaltfläche, die keine anderen Daten und Uhrzeiten anzeigt

Code:

public String visits(String myCookie){ 
     if(numberOfVisits == 0){ 
      return "Engineer has not visited this machine"; 
     }else if(myCookie.equals(storedCookie)){ 
      for(int i = 0; i < numberOfVisits; i++){ 
      System.out.println("Engineer has visited on these dates: " + dateFormat.format(storedDate)); 
      } 
      return storedCookie; 
     }else{ 
      for(int i = 0; i < numberOfVisits; i++){ 
       System.out.println("Engineer has visited on these date: " + dateFormat.format(storedDate)); 
      } 
      return ""; 
     } 
    } 
+1

Sie sollten nur die relevanten Teile Ihres Codes zu der Frage veröffentlichen.Die Leute werden nicht Ihr gesamtes Programm durchsuchen wollen, um zu versuchen, den Teil zu finden, auf den Sie sich beziehen. –

+0

Der Beitrag wurde aktualisiert. – iiAaronXiX

Antwort

0

Ihre Logik kohärent sein muss, mit dem, was man als Parameter bekommen würde ich die Reihenfolge ändern vorschlagen, was Sie überprüfen, so dass Ihre Filialen werden klarer und einfacher auszuführen:

public String visits(String myCookie){ 
     if(myCookie.equals(storedCookie)){ 
      if(numberOfVisits == 0) 
        return "Engineer has not visited this machine"; 
      for(int i = 0; i < numberOfVisits; i++){ 
       System.out.println("Engineer has visited on these dates: " + dateFormat.format(storedDate)); 
      } 
      return storedCookie; 
     } 
    return ""; 
    } 

Ich kenne diese gespeicherte Variable aber dieses hier nicht: System.out.println ("Ingenieur hat an diesen Daten besucht:" + dateFormat.format (statedDate)); wird das gleiche Datum drucken ...

Sie, dass in einigen Array haben sollte und es mit dem Index

System.out.println("Engineer has visited on these dates: " + dateFormat.format(storedDate[i])); 
+0

Diese Lösung hat nicht funktioniert, da ich die Besuche nicht mehr drucken kann, wenn der Benutzer abgemeldet ist und immer noch das gleiche Datum anzeigt wie bei der ersten Anmeldung. 'Engineer hat an diesen Daten: 29.04.2016 19:55 Ingenieur hat an diesen Daten besucht: 29/04/2016 19:55 Ingenieur hat an diesen Daten besucht: 29/04/2016 19: 55' – iiAaronXiX

+0

ja ... da ist das selbe ... ist das in irgendeinem array ??? –

0

Ihre Frage nicht klar ist, zu erhalten.

Sie scheinen zu bitten, die Daten zu sammeln, an denen sich eine Person angemeldet hat. Sie müssen also ein Sammlungsobjekt für jeden Benutzer aufbewahren. Nicht sicher, ob Sie nur Datum oder Datum haben möchten; Ich werde mit Datum-Zeit gehen.

Wir werden eine List verwenden, um sie in chronologischer Reihenfolge zu halten, wie sie passieren.

Wir werden die Instant Klasse verwenden, einen Moment auf der Timeline in UTC mit einer Auflösung von Nanosekunden. Teil des java.time Framework, das in Java 8 und höher integriert ist.

List<Instant> logins = new ArrayList<>(); 

Wenn sich dieser Benutzer anmeldet, fügen Sie den aktuellen Moment hinzu.

logins.add(Instant.now()); 

Wenn Sie diese gesammelten Werte anzeigen möchten, einfach loop. Die toString-Methode generiert standardmäßig eine Zeichenfolge im Standardformat ISO 8601.

System.out.println("You logged in at these date-times:"); 
for(Instant instant:logins) { 
    String output = instant.toString(); 
    System.out.println(output); 
} 

können Sie einen time zone gelten in den wall-clock time vom Benutzer erwartet einzustellen.

Um ein anderes Format zu verwenden, siehe das Paket java.time.format. Sie können sogar java.time automatisch die Ausgabe für Sie lokalisieren lassen. Geben Sie eine Locale für die menschliche Sprache an, um den Tag/Monat und die kulturellen Normen von Periode und Komma zu übersetzen.

DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM); 
formatter = formatter.withLocale(Locale.CANADA_FRENCH); 

Verwenden Sie diesen Formatierer in Ihrer Schleife.

Wenn Sie mehr zu Ihrer Frage haben, dann sollten Sie bearbeiten und neu schreiben.

Verwandte Themen