# Datum Programm



## Spanier (11. Nov 2015)

Hallo liebe User

ich studiere Informatik und habe als Aufgabe eine Programmieraufgabe erhalten die mich auf paar Probleme stören lässt.

Es soll als Eingabe über die Tastatur (Scanner) Jahr, Monat, Tag, Stunde, Minute und ein Parameter(Minuten 2) übergeben werden.

Als Beispiel Eingabe : 2015 10 7 16 30 30 steht für 16:30Uhr am 7.10.2015 und addiert sollen 30 min werden.
Als Ausgabe soll dann: 2015 10 7 17 0 weil nach 30min nach 16:30Uhr am 7.10.2015 es 17Uhr ist.

Meine Hindernisse sind erstmal die Int werde. zb soll das Jahr 1600-3000 haben. Monate 12 und so weiter.

Wie schriebe ich diese in das Programm.

Weil ich habe meine Int werte erstmals als sc.nextInt() deklariert, da diese ja über die Tastatur eingeben werden sollen.


----------



## Joose (11. Nov 2015)

Spanier hat gesagt.:


> Meine Hindernisse sind erstmal die Int werde. zb soll das Jahr 1600-3000 haben. Monate 12 und so weiter.
> Wie schriebe ich diese in das Programm.
> Weil ich habe meine Int werte erstmals als sc.nextInt() deklariert, da diese ja über die Tastatur eingeben werden sollen.



Diese Anforderung ist mir noch nicht wirklich klar. Was heißt den "der int wert jahr soll 1600-3000 haben"? Heißt dass das Jahr muss >1600 und <3000 sein? Dann schreib das doch genauso in dein Programm


----------



## Spanier (11. Nov 2015)

ok sorry für die schwammige Formulierung, das Jahr sollte im Intervall von 1600 und 3000 liegen. Und genau da liegt mein Problem, wie schreibe ich das so hin ?

Zumal ich auch den Scanner benutzen muss...


----------



## Joose (12. Nov 2015)

Spanier hat gesagt.:


> Zumal ich auch den Scanner benutzen muss...


Der Scanner ist nur zum Einlesen der Daten, was der nun einliest ist vollkommen egal. Ob der eingelesene Wert gültig ist musst bzw. kannst du erst nach dem Einlesen prüfen.



Spanier hat gesagt.:


> das Jahr sollte im Intervall von 1600 und 3000 liegen. Und genau da liegt mein Problem, wie schreibe ich das so hin ?


Ich habe es ob schon mal einfacher aufgeschrieben. Dein Jahr soll ">= 1600" sein und(!) "<= 3000".
Für so eine Prüfung wird ein einfaches if-Statement reichen. Wie ein if-Statement aufgebaut ist wirst du hoffentlich schon gelernt haben (ist eine grundlegende Element in (fast) jeder Programmiersprache).

Ähnliches gilt dann für das Monat, dieses muss ">= 1" sein und(!) "<=12".

Hier 2 Links für Bedingungen:
http://www.tutorialspoint.com/java/java_decision_making.htm
http://www.tutorialspoint.com/java/if_statement_in_java.htm


----------



## strußi (12. Nov 2015)

mach doch eine variable int jahr =0;
das gleiche kannst du auch für deine Monate(1-12) Tage( 1- Monatsabhängig) Stunden(0-24) minuten(0-59) machen, beachte aber dass du unterschiedliche anzahl an Tagen für verschiedene Monate hast (Februar 28 oder 29 Tage Stichwort Schaltjahr)
while( jahr <1600 && jahr >3000){
jahr =eingabe einlesen //musst du selber rausbekommen;
}


----------



## strußi (12. Nov 2015)

korrektur es muss ein ODER in der while-schleife sein while( jahr <1600 || jahr >3000){


----------



## Spanier (12. Nov 2015)

Ah ok jetzt verstehe ich. Klar die ganzen Schleifen habe ich drauf. Mein Problem war folgendes, da es mit dem Scanner initialisiert werden sollte habe ich die integer scan.nextInt mit dieser Deklaration am Anfang des Programms gemacht. Dadurch war mir nicht ersichtlich wie ich die Kriterien mache. Aber durch den Tipp dies in der While Schleife zu machen, da dies ja eine Boolsche Antwort sein muss habe glaube ich zu weit gedacht, wollte schon Arrays nehmen  um die Werte am Anfang zu deklaieren-.-.

Super Forum hier 

Ich bin quasi völlig falsch an die Sache herangegangen...

Ok vielen Dank für die Zahlreichen Kommentaren und danke für Eure Hilfe


----------



## strußi (12. Nov 2015)

ich hab kurz mal ne lösung zusammengeschuster, falls du nicht weiter kommst kannst du dich melden.


----------

