» Hilfe beim Programmieren eines Programms zum umrechnen von Stunden in Dezimalstunden

Android App - Wenn man darauf klickt soll ein Sound abgespielt werdeNeuen Thread eröffnenNeue Antwort erstellenEingabe von bis zu 1000 Zahlen ?
AutorNachricht
Beobachter 
Anmeldedatum: 02.09.2012
Beiträge: 5
09.09.2012, 08:59
zitieren

ich bereite mich im Moment auf mein Studium vor und habe nángefangen einfache Java programme zu erstellen.
Meine Mutter hat mich in diesem zusammenhang damit beauftragt ihr ein Programm zu schreiben, bei dem sie arbeitsbeginn und arbeitsende in der Form HH:MM angibt und am Ende die gearbeiteten Dezimalstunden rauskommen.
im grunde eine simple Rechnung aber ich bekomme das Programm nicht hin....

soweit bin ich bisher:
ich habe gedacht ich lasse meine mutter arbeitsbeginn und ende ganz normal schreiben: z.b: 7.50 und 11.10, das Programm soll dann von 7.50 ( ist ja eine Dezimalzahl für das Programm, soll in Wirklichkeit ja gar keine sein) die 7 abziehen und die .50 mal 10/6 nehmen, sodass eben 0,8333 rauskommt.
da komme ich nicht weiter:

public class Stundenrechner {
public static void main (String[] args) {

// programm zum dezimalstunden rechnen machen
// erst differenz der zeit, dann zahl in Dezimalzahl darstellen

double Startzeit = 7.50;
double Endzeit = 11.00;
Startzeit - (int) Startzeit; //hier möchte ich eben dass allgemein von der 7.50,
//die ja in Wirklichkeit 7:50 sein soll die 7
// abgezogen wird, damit man die 0,5 umrechnen kann
Endzeit - (int) Endzeit; // selbes problem wie bei Startzeit
System.out.print ("Arbeitsstunden");
System.out.println ( Endzeit - Startzeit );



}
}



wäre nett falls mir jemand helfen könnte.

lg


pn
Beobachter 
Anmeldedatum: 09.09.2012
Beiträge: 8
09.09.2012, 10:51
zitieren

Tag,

ehrlichgesagt verstehe ich den Sinn von ein par Dingen nicht, wie zum Beispiel:

Startzeit - (int) Startzeit;

du ziehst also von einem String einen int-Wert ab, der nicht gespeichert wird...recht komisch...

Hier mal mein Vorschlag:

public class Stundenrechner 
{
    public static void main(String[] args) throws Exception//zu faul für try-catch-Anweißungen...
    {       
        //Einlesen der Daten als String
      String StrArbeitsbeginn = new java.util.Scanner( System.in ).nextLine();
      String StrArbeitsende = new java.util.Scanner( System.in ).nextLine();

     
      //Spliten der Blöcke auf Stunden und Minuten
      int ArbeitsbeginnStd = Integer.valueOf(StrArbeitsbeginn.substring(0, 1));
      int ArbeitsendeStd = Integer.valueOf(StrArbeitsende.substring(0, 1));
      int MinutenBeginn = Integer.valueOf(StrArbeitsbeginn.substring(StrArbeitsbeginn.indexOf(":") + 1));
      int MinutenEnde = Integer.valueOf(StrArbeitsende.substring(StrArbeitsende.indexOf(":")+1));

      //berechnung der Stunden als Kommazahl
      //mit konvertierung in float, da Ergebnis ansonsten ein Integer wäre->keine Kommazahlen->ungenau
      float beginn = ArbeitsbeginnStd + ( (float) MinutenBeginn / 60 );
      float ende = ArbeitsendeStd + ( (float) MinutenEnde / 60 );
     
      //Berechnung Differenz
      float Diff = ende - beginn;
     
      if(Diff < 0)
      {
          System.out.println("Fehler: Arbeitsende vor Beginn");
      }
      else
      {
          System.out.println("Differenz: " + Diff + " Stunden");
      }
    }
}

Bin gerade nicht an meinem eigenen PC, daher wie gesagt: ungetestet.
wenn ich wieder an meiner Mühle bin folgen dann noch weitere Erklärungen der Vorgehensweise.

Gruß Toasty


 1x  bearbeitet
pn
Beobachter 
Anmeldedatum: 02.09.2012
Beiträge: 5
10.09.2012, 07:53
zitieren

naja wie gesagt ich bin anfänger, aber ich kann dir gerne die Idee hinter der Zeile erläutern: Da Java bei der Eingabe ja nicht erkennt dass es eine Uhrzeit sein soll wird 7.40 ja als 7,4 erkannt und nicht als 7,66666. Darum wollte ich von der 7,40 die 7 abziehen und den Rest dann mit 10/6 multiplizieren.
Danke für dein Program

p.s: ich habe es mir angeschaut und verstehe es (noch) nocht, obwohl deine kommentare schön verständlich sind, was vor allem daran liegt dass mir einige befehle die du benutzt hast unbekannt sind.
daher meine frage ob du mir mal eine Beispieleingabe zeigen könntest, z.b. falls jemand von 7:30, bis 11:13 arbeitet.

lg


pn
Beobachter 
Anmeldedatum: 09.09.2012
Beiträge: 8
10.09.2012, 08:26
zitieren

Grundsätzlich keine schlechte Idee, du musst das Ergebnis aber in einer Variable speichern oder an eine Funktion übergeben, so geht der Wert einfach verloren.


Zu den Funktionen:
int String.indexOf( String zuFindenderText);

gibt den Index der Stelle zurück, an dem der String in den Klammern gefunden wurde.

String String.substring(int startIndex, int länge);

gibt einen Teilstring zurück, nämlich der Text ab dem angegebenen Index, mit der Länge die als 2. Parameter angegeben wird. Die Längenangabe ist optional.


Das Programm zerlegt also erstmal in Stunden und Minuten

eine Beispielausgabe kann ich gerne machen, allerdings erst später, da ich gerade nur mobil online bin



Verfasst am: 10.09.2012, 19:29
zitieren

erstmal ein kleiner Bugfix:
      int ArbeitsbeginnStd = Integer.valueOf(StrArbeitsbeginn.substring(0, StrArbeitsbeginn.indexOf(":")));
      int ArbeitsendeStd = Integer.valueOf(StrArbeitsende.substring(0, StrArbeitsende.indexOf(":")));
sonst bugt der bei 2-stelligen Uhrzeiten rum, jetzt ist die Länge abhängig von der Position des Doppelpunkts.

Ergebnis des gewünschten Testlaufs:
ZitatDifferenz: 3.3833327 Stunden
man muss sagen das es etwas ungenau ist, zum Beispiel ergibt 7:50 - 8:50 laut Programm: Differenz: 0.9999995 Stunden. Halte ich aber für vernachlässigbar, da man wohl einfach Runden wird, was die Abweichung nichtig macht.
pn
Beobachter 
Anmeldedatum: 02.09.2012
Beiträge: 5
12.09.2012, 12:47
zitieren

sorry das ich solange nicht geantwortet habe:D
danke, erfüllt seinen zweck:D

lg


pn
Beobachter 
Anmeldedatum: 09.09.2012
Beiträge: 8
12.09.2012, 14:53
zitieren

alles klar, kein Ding

Gruß Steffen


pn
Gast 
12.09.2012, 14:53
zitieren

Mach mit!

Wenn Dir die Beiträge zum Thread "Hilfe beim Programmieren eines Programms zum umrechnen von Stunden in Dezimalstunden" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:



Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...


Neuen Thread eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:
Letzter Beitrag
Hilfe beim Programmieren einer Web-App
Hallo alle miteinander, mein Kumpel und ich wollen eine Web-App programmieren - oder besser: Programmieren lassen. Wir beide verfügen zwar über viele betriebswirtschaftliche, kreative und grundlegende technische Skills, allerdings sind wir nicht...
[Projekte]von fipe
0
205
14.01.2022, 16:46
fipe
Hilfe beim Kauf eines CRX del sol
Moin, moin! So fahre zur zeit einen Peugeot 206 1,1L. :cry: Jetzt möchte ich zu den Träumen der Power umsteigen. Schwärme von einem Honda CRX del sol. Bj. 93/94 1,6L ESI mit 125 PS :drive: . Was haltet ihr von dieser Überlegung? Ich habe keine...
von Kev
1
1.026
13.06.2005, 10:13
mgutt
Hilfe beim Kauf eines FR-V
Hallo Alle zusammen. Bin neu hier. Habe am Freitag beim Händler den FR-V (Diesel) näher angesehen und werde nächste Woche eine Probefahrt machen. Habe ein paar Fragen an die Fachleute. 1. Das 2007 Modell bietet wenn ich richtg gelesen habe,...
von Alerbe
3
1.271
14.10.2006, 13:44
Alerbe
Hilfe beim Kauf eines Jazz
Hallo liebe HONDA Gemeinde, ich meinen geliebten und treuen HONDA Accord nach mehr als 10 Jahren verkauft und bin nun auf der suche nach einem neuen treuen Weggefährten. In die engere Wahl kommt der HONDA Jazz. Weiß jemand vielleicht wie es so mit...
von Homer J. Simpsons
19
910
11.12.2008, 19:38
nfs_freak
Hilfe beim anschlissen eines wassertemperaturanzeigers
hey leute... will gerne mein zusatzinstrument also ne wassertemperatur anzeige schlissen weis aber nicht wie... wäre klasse wenn mir jemand mal ne bschreibung machen könnte wo was ran soll... es haben bestimmt ja hier mehrere leute solch...
von Lukas.Honda-Civic@Black
11
620
18.05.2008, 20:09
tuning_civic
Problem beim Starten eines Spiels! HILFE
ich hab mir gerade medal of honor pacific assault gekauft für schnäpchenmäßige 10€ wenn ich das spie starten will kommt folgende fehlermeldung: ich hab ne schäbige geforce 4 mx 460 instaliert ist directx 9 updates für die...
von EP3-Starter
4
434
02.12.2007, 20:27
Turrican
hilfe suche rat beim namen eines sonsors
hi leute habe ein problem mit meinem ej1 und zwar brauch meinen kumpel gestern ein senor ab, beim einstellen der zündeinheit. Zum thema ist ein kleiner grüner sensor direkt neben dem selenoid ich weiss nicht wie der sensor heisst.evt könnt ihr mir ja...
von Zender1133
19
487
03.06.2009, 17:47
Zender1133
brauche hilfe beim kauf eines accords
ich hab mal ein paar fragen denn ich bin am überlegen ob ich mir ein älteres model zulege so nen alten accord kp was für einer des is aber mich interesiert ob der hydrostößel hat und vieleicht könnt ihr mir ein paar vor und nachteile an demwagen...
von kKk1991
4
225
25.07.2009, 02:07
VorTeX
Hilfe beim Koppeln eines Nokia 5330 Xpress mit dem HFT
Hallo, haben seit 2 Tagen den Civic 1,8 executive und ich muss sagen, "nur fliegen ist schöner"! Mir gefällt der Wagen sehr gut. Ein Problem habe ich aber und ich hoffe, von Euch Hilfe zu erhalten! Mein Handy, Nokia 5330 Xpress lässt sich...
von arbeitssweety
4
769
13.07.2008, 14:40
arbeitssweety
Braucht Hilfe beim Anschliesen eines B18c4 an B16a1 Kabelbaum
Hallo Hat schon jemand einen B18c4 an einen B16a1 motorkabelbaum angeschlossen und kann mir Helfen B18 Lima und Zündverteiler wird...
von BADCRX
11
386
27.07.2015, 22:13
crxtuner91
© 2004 - 2024 www.programmierer-forum.de | Communities | Impressum |