# Schreibe eine Methode prettyPrintDays (int days)



## Sunnyflash (1. Mrz 2015)

Hallo an Alle,

Nachdem ich mir alle Grundlagen von Java nun ein zweites Mal zu Gemüte gezogen habe, stehe ich nun immer noch vor meinem Problem, dass ich es nicht richtig anwenden kann.

Mir fehlen glaube einfach auch einige Ideen wie ich ein Programm schreiben kann.

Folgende Aufgabenstellung habe ich gefunden: 

Schreibe eine Methode prettyPrintDays (int days) die als Parameter eine beliebige Anzahl von Tagen übergeben bekommt. Die Methode soll diese Tage dann formatieren und nach Jahren, monaten und Tagen ausgeben. Der Einfachheithalber soll ein Jahr 360 Tage haben, ein Monat 30 Tage. Wird der Methode z.b. Ein Wert von 379 Tagen übergeben, soll die Ausgabe wie folgt aussehen: 
1 Jahr(e) : 1 Monat(e) : 7 Tag(e)
Die Methode beginnt:

         Public static void prettyPrintDays ( int days ) {




Ok ich habe verstanden, dass es es eine Methode ohne Rückgabewert ist, somit wird die letzte Anweisung doch ein System.out.print 

Nur wie schaffe ich es auf den den Methodenrumpf zu kommen??? ???:L

Kann mir vielleicht bitte jemand helfen? 
Vielen Dank vorab
Sunnyflash


----------



## Saheeda (1. Mrz 2015)

Im Grunde musst du ja nur rausbekommen, wie viele Jahre, Monate und Tage in dieser Zahl stecken.

Mithilfe des Modulo-Operators (%) kannst du herausfinden, ob eine Zahl durch eine andere teilbar ist bzw. welcher Wert als Rest übrig bleibt:

2%2 = 0
3%2 = 1
29%5 = 4
(25 /5 = 5; 29-25 = 4)

Hilft dir das als Denkanstoß?


----------



## Sunnyflash (1. Mrz 2015)

Hallo Saheeda,

aha ! 
Ok das hat mich etwas nach vorn gebracht.

Nun habe ich versucht es umzusetzen - wie kann ich nur mit dem Rest weiterarbeiten.

ich dachte so an folgendes:


```
public class Days {

    /**
     * @param args
     */
    public static void main (String [] args) {
     prettyPrintDays (500);}
    
public static void  prettyPrintDays (int days) {
        
        int berechneJahr = days % 360;
        int berechneMonat = berechneJahr % 30;
        int berechneTage = berechneMonat;
     
      System.out.println (berechneJahr + "Jahr(e)" + berechneMonat + "Monat(e)" + berechneTage + "Tag(e)" );    }

}
```

Habe schon gemerkt, dass ich hier ja falsche Ergbnisse bekomme. (=> bei days = 500 käme dann 140 Jahre, 20 Monate, 20 Tage) 
Eigentlich ist ja der Rest nur 1,388..

Was muss ich noch anstellen, damit ich mit dem Rest weiterrechne - bzw damit es den  Restwert verarbeitet?

Danke


----------



## Saheeda (1. Mrz 2015)

Wenn du rauskriegen möchtest, wie oft eine Zahl in einer anderen steckt, was musst du dann rechnen? Denk nicht zu kompliziert, das ist 3./4. Klasse.


----------



## Sunnyflash (1. Mrz 2015)

juhu. Ich habs geschafft.
Ich steh mir bei dieser Programmiererei immer selbst im Weg und decke wirklich zu kompliziert.
Danke!


----------

