2016-04-05 23 views
-1

Zunächst einmal. Ich habe mir die anderen vorhandenen Threads zu ähnlichen Fragen angeschaut, aber sie decken einen allgemeinen Weg ab, das Alter einer Person in Jahren, Monaten und Tagen zu berechnen.Wie finde ich den Unterschied zwischen zwei Daten in Tagen?

Ich frage mich, ob ich etwas tun könnte, anstatt den kurzen Weg. In Ordnung eine Person in Tagen zu berechnen, wie alt ist, habe ich zunächst das aktuelle Datum mit Hilfe von LOCALDATE erhalten:

 LocalDate date = LocalDate.now(); 
     int years = 0, months = 0, days = 0; 

     int currYear = date.getYear(); 
     int currMonth = date.getMonthValue(); 
     int currDay = date.getDayOfMonth(); 

des Benutzers birth zu bekommen, verwende ich einen Scanner:

Scanner scanner = new Scanner(System.in); 

int userDate; 
System.out.println("When are you born? - YYYYMMDD:"); 
userDate = scanner.nextInt(); 

int inputYear = userDate/10000; 
int inputMonth = (userDate/100) % 100; 
int inputDay = userDate % 100; 

Wie würde ich die Berechnung der Differenz zwischen diesen beiden Daten, ohne die bereits definierten Methoden aka:

GregorianCalendar userInput= new GregorianCalendar(inputYear, inputMonth - 1, inputDay);

long difference = (greg.getTimeInMillis() - userInput.getTimeInMillis()); long total = difference/1000/60/60/24; total += counter; System.out.println("You are " + total + " days old");

Alle Tipps, Hinweise in Richtungen würden sehr geschätzt werden!

Vielen Dank im Voraus. :)

+3

Warum erfinden Sie das Rad neu, anstatt die Werkzeuge zu benutzen, die Ihnen zur Verfügung stehen? –

+2

Welche Methoden meinen Sie mit "bereits definierten Methoden"? –

+0

Ja, das ist ziemlich einfach. Ich möchte meine eigenen Berechnungen verwenden. Das einzige, was ich benutzen möchte, ist, die Daten zu bekommen. Übung :) – Kanox

Antwort

0

Ich habe einen einfachen Algorithmus. Zuerst beginne ich damit, zu berechnen, wie viele Tage noch in dem Jahr sind, in dem der Benutzer geboren wurde. Sobald ich diese habe, fange ich an, die Tage zum aktuellen Jahr hinzuzufügen - 1 (also 2015). Dann ist mein letzter Teil des Algorithmus zu berechnen, wie viele Tage in diesem Jahr vergangen sind.

+0

Es ist sehr wahrscheinlich, dass Sie die Anzahl der Tage falsch berechnen. Das Rad neu zu erfinden funktioniert nicht wirklich. Es tut uns leid. – specializt

0

Sie sollten verschiedene Date-Objekte und Berechnungen nicht mischen und erwarten, dass es funktioniert. Verwenden Sie die SimpleDateFormat, um Daten einfach und ohne großen Aufwand zu analysieren/auszugeben, da dies für Sie bereits erledigt ist. Du bekommst die üblichen Date von denen du die Zeiten bekommen kannst. Von da an ist es nur Berechnung und sollte ziemlich einfach sein.

Wenn Sie Hilfe mit Daten benötigen, sollten Sie this simple Tutorial für weitere Informationen überprüfen.

+2

Tatsächlich sollte er überhaupt keine manuellen Berechnungen durchführen - es wurde 'java.time' eingeführt, das es Programmierern ermöglicht, manuelle Berechnungen zu ignorieren, die jetzt komplett abstrakt sind. – specializt

+0

Ich sehe, ich wusste das nicht, da ich die Zeiten überhaupt nicht verwende. Danke, dass Sie mich wissen lassen :) – PreFiXAUT

Verwandte Themen