Hallo Leute,
ich bin neu hier und habe leider eine für euch wahrscheinlich sehr einfache Anfängerfrage.
Zum Thema Java und Android Entwicklung habe ich schon einiges gelesen. Unter anderem mehrere Bücher. Aber so richtig klick hat es noch nicht gemacht. Leider.
Meine erste App, die ich (wahrscheinlich erstmal nur für mich selber) gerade versuche zu erstellen beschäftigt sich mit dem Thema Uhrzeiten und Schulden
Die Idee: Man soll in der App sehen können, dass etwas passiert, wenn man einen Kredit abzahlt. Dafür habe ich erstmal versucht mit der Zeit zu arbeiten
Ich hoffe ihr verzeiht mir, wenn ich irgend was falsch gemacht habe.....
Das eigentliche Ziel und damit meine Frage lautet folgende: Wie schaffe ich es, dass das Ergebnis nicht wie unten gezeigt aussieht, sondern das Ergebnis so angezeigt wird(Beispiel) : 8 Jahre, 7 Monate, 10 Tage, 20 Stunden, 5 Minuten, 3 Sekunden.
Beim ausführen des Codes passiert folgendes:
Anbei noch der Code:
package de.programmierenlernenhq.schuldenuhr;
import android.app.Activity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;
public class MainActivity extends Activity {
TextView tv_clock;
TextView tv_years;
TextView tv_weeks;
TextView tv_days;
TextView tv_hours;
TextView tv_minutes;
TextView tv_seconds;
final SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss", Locale.GERMANY);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_clock =(TextView)findViewById(R.id.tv_clock);
tv_years =(TextView)findViewById(R.id.tv_years);
tv_weeks =(TextView)findViewById(R.id.tv_weeks);
tv_days =(TextView)findViewById(R.id.tv_days);
tv_hours =(TextView)findViewById(R.id.tv_hours);
tv_minutes =(TextView)findViewById(R.id.tv_minutes);
tv_seconds =(TextView)findViewById(R.id.tv_seconds);
Thread t = new Thread() {
@Override
public void run() {
try {
while (!isInterrupted()) {
Thread.sleep(1001);
runOnUiThread(new Runnable() {
@Override
public void run() {
Calendar cal_1 = new GregorianCalendar();
Calendar cal_2 = new GregorianCalendar();
cal_1.getTime(); // Erster Zeitpunkt
cal_2.set( 2022, Calendar.AUGUST, 7, 0, 0, 0 ); // Zweiter Zeitpunkt
long time = cal_2.getTime().getTime() - cal_1.getTime().getTime(); // Differenz in ms
double years = time / (365. * 24. * 60. * 60. * 1000.); //Differenz in Jahren
double weeks = time / (7. * 24. * 60. * 60. * 1000.); //Different in Wochen
double days = time / (24. * 60. * 60. * 1000.); //Different in Tagen
double hours = time / (60. * 60. * 1000.); //Differenz in Stunden
double minutes = time / (60. * 1000.); //Differenz in Minuten
Long seconds = Math.round( (double)time / (1000.) ); //Differenz in Sekunden
//Uhrzeit ausgeben
String datum_Zeit = dateFormat.format(new java.util.Date());
tv_clock.setText(datum_Zeit); //Uhrzeit ausgeben
tv_years.setText(Double.toString(years)); //Jahre ausgeben
tv_weeks.setText(Double.toString(weeks)); //Wochen ausgeben
tv_days.setText(Double.toString(days)); //Tage ausgeben
tv_hours.setText(Double.toString(hours)); //Stunden ausgeben
tv_minutes.setText(Double.toString(minutes)); //Minuten ausgeben
tv_seconds.setText(Long.toString(seconds)); //Sekunden ausgeben
}
});
}
} catch (InterruptedException e) {
}
}
};
t.start();
}
}
Alles anzeigen