# Kalender mit Terminen



## maddin1992 (9. Dez 2012)

Guten Tag,
bin Anfänger in Java und will einen Kalender mit Terminen erstellen,die man bearbeiten und verschieben kann.Kalender hab ich schon geschafft und ist auch voll funktionsfähig.Nun zu den Terminen eingeben und ausgeben klappt schon,aber jetz einen eingetragenen Termin bearbeiten und verschieben zerbricht mir den Kopf vllt könnt ihr mir helfen.(case 3 und 4 ganz weit unten is mein Problem)


import Prog1Tools.IOTools;

public class Termin {

  public static void main(String[] args) {

    // Fünf Termine
    String[] termine=new String[5];
    for (int i=1;i<5;i++)
      termine_="";

    // Schleife
    boolean finish=false;
     while (!finish) {

      // Bildschirmmenue
      System.out.println("1 = Neuer Eintrag");
      System.out.println("2 = Termine ausgeben");
      System.out.println("3 = Terminbearbeitung");
      System.out.println("4 = Programm beenden");

      int auswahl=IOTools.readInt("Ihre Wahl:");

      // Fallunterscheidung
      switch(auswahl) {

        case  1: // Termine eingeben

          int terminNummer=IOTools.readInteger("Termin Nummer:");
          String eingabe=IOTools.readLine("Termin:");

          // Termin einordnen
          termine[terminNummer]=eingabe;
          break;

        case  2: // Termine ausgeben
          for (int i=0;i<5;i++)
            System.out.println(i+" .Termin: "+termine);
          break;

        case 3: //Termine bearbeiten



        case 4: //Termin verschieben


        case 5: // Programm beenden
          finish=true;
          break;

        default: // Falsche Zahl eingegeben
          System.out.println("Eingabefehler!");
      }
    }
  }
}_


----------



## Fab1 (9. Dez 2012)

Bitte das nächste mal Java Tags verwenden, damit der Code formatiert wird.

zu case 3 hätte ich folgenden Vorschlag, ob es dann funktioniert musst du selbst kurz testen, da ich keine Klasse IOTools besitze.


```
case 3: //Termine bearbeiten
System.out.println("Welchen Termin möchten Sie bearbeiten? Bitte geben Sie die Termin Nummer ein: ");
int zuBearbeitenderTermin = IOTools.readInteger("Termin Nummer");
System.out.println("Bitte geben Sie die neuen Terminbeschreibung ein");
String bearbeiteteTermin = IOTools.readLine();
termine[zuBearbeitenderTermin] = bearbeiteteTermin;
```

zu case 4 weiß ich nicht so richtig was gemeint ist. Evtl. Terminnummer um eins verschieben? Mh bitte nochmal kurz erklären.


----------



## maddin1992 (9. Dez 2012)

ja super weltklasse hat funzt,ja hätte selber drauf kommen können aber nach 5 stunden java geht hal nix mehr,eigenlich ist das mit den terminnummern nur zum test gewesen um zu schauen ob das funzt....ich muss die termine irgenwie mit meinem kalender verbinden heißt termin zum beispiel am 1.12.2012 zahnarzttermin verschieben  auf den 19.12.2012........naja morgen werd ich mich mal wieder ranwagen

kalender

import java.util.Scanner;
public class Kalender {

	//1548 Anfang des Gregorianischen Kalenders
	int jahr = 1584; 

	public static void main(String[] args) {

		      // Tastatureingabe                                              
		      Scanner sc = new Scanner(System.in);  

		      int jahr = 1584;
		      System.out.println("Geben Sie das gesuchte Jahr ein:");     

		      int gesuchtesJahr = sc.nextInt();
		      System.out.println("Geben Sie den gesuchten Monat als Zahl ein:");    

		      int gesuchterMonat = sc.nextInt();  
		      System.out.println("Geben Sie den gesuchten Tag ein:");       

		      int gesuchterTag = sc.nextInt();                                      
		      int vergangeneTage = 0;     

		      //Schaltjahr deklariert
		      boolean schaltjahr = false;    

		      while (jahr <= gesuchtesJahr) {  

		    	  // Errechnug eines Schaltjahre oder eines Nichtschaltjahrs
		    	  if((jahr%4==0 && jahr%100!=0) || (jahr%400==0)){
		    			schaltjahr = true;

		    			}

		    	  else {
		    			schaltjahr=false;
		    			}

		          //Falls Schaltjahr 366 Tage im Jahr 
		          if (schaltjahr == true) {                                           
		          vergangeneTage = vergangeneTage + 366;     
		          }

		          //Falls kein Schaltjahr 365 Tage im Jahr
		          else {
		          vergangeneTage = vergangeneTage + 365;
		          }

		        jahr++;  

		      }

		      int Februar = 28;                                     

		      if (schaltjahr == true) {                             
		         Februar = 29;                                      
		         vergangeneTage = vergangeneTage +1;             
		          } 

		      else {
		         vergangeneTage = vergangeneTage +0;             
		         }

		   // Errechnug Monat
		      switch (gesuchterMonat) {                             

		      case 1:                                               
		        vergangeneTage = vergangeneTage + 0;
		        break;       
		      case 2:
		        vergangeneTage = vergangeneTage + 31;
		        break;          
		      case 3:
		        vergangeneTage = vergangeneTage + 31 + Februar;
		        break;          
		      case 4:
		        vergangeneTage = vergangeneTage + 31 + Februar + 31;
		        break;          
		      case 5:                                                                                               
		        vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30;
		        break;          
		      case 6:
		        vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31;
		        break;          
		      case 7:
		        vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31 + 30;
		        break;          
		      case 8:
		        vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31 + 30 +31;
		        break;          
		      case 9:
		        vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31 + 30 +31 +31;
		        break;          
		      case 10:
		        vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31 + 30 +31 +31 + 30;
		        break;          
		      case 11:
		        vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31 + 30 +31 +31 + 30 + 31;
		        break;          
		      case 12:
		        vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31 + 30 +31 +31 + 30 + 31 + 30;
		        break;
		      default: 
		        System.out.println("Offenbar gab es einen Fehler bei der Berechnung! \n Vielleicht bei der Monatseingabe vertippt?");
		        break;
		      }   

		      //Errechnung des Wochentags mithilfe Gaußscher Formel
		      int Wochentag = (vergangeneTage + gesuchterTag - 1) % 7;                      

		      switch (Wochentag) {

		      case 0:
		        System.out.println("Der gesuchte Tag ist ein Sonntag!");             
		        break;
		      case 1:
		        System.out.println("Der gesuchte Tag ist ein Montag!");            
		        break;
		      case 2:
		        System.out.println("Der gesuchte Tag ist ein Dienstag!");               
		        break;
		      case 3:
		        System.out.println("Der gesuchte Tag ist ein Mittwoch!");             
		        break;       
		      case 4:
		        System.out.println("Der gesuchte Tag ist ein Donnerstag!");         
		        break;
		      case 5:
		        System.out.println("Der gesuchte Tag ist ein Freitag!");                
		        break;
		      case 6:
		        System.out.println("Der gesuchte Tag ist ein Samstag!");                
		        break;
		      default: 
		        System.out.println("Offenbar gab es einen Fehler bei der Berechnung!");
		        break;
		      }

	//Errechnung Kalenderwoche
		    int tage=0;
		  	switch(gesuchterMonat){

			case 12:
	        	tage = tage+30;
	        case 11:
	        	tage = tage+31;
	        case 10:
	        	tage = tage+30;
	        case 9:
	        	tage = tage+31;
	        case 8:
	        	tage = tage+31;
	        case 7:
	        	tage = tage+30;
	        case 6:
	        	tage = tage+31;
	        case 5:
	        	tage = tage+30;
	        case 4:
	        	tage = tage+31;
	        case 3:
	        	tage = tage+28;
	        case 2:
	            tage = tage+31;
	        case 1:
	            tage = tage+gesuchterTag;
	        }

	        int kw = tage % 7 < 3 ? tage/7 : (tage-1)/7+1 ;
	        System.out.println("Es ist die " + kw+". Kalenderwoche" );


		      }	    

	}


----------



## Fab1 (9. Dez 2012)

Es scheint als hättest du meinen Post nur kurz überflogen, ansonsten wäre dir der Hinweis auf die  Java™ Quelltext ist bitte in 
	
	
	
	





```
-Tags zu schreiben: [code=Java]hier Java Code einfügen
```
 aufgefallen!

Mal abgesehen davon. Habt ihr schon mal mit Methoden gearbeitet? Deinen Code könnte man erheblich leichter lesen, wenn du solche verwenden würdest. Außerdem würde ich mir nochmal die Java-Konventionen anschauen.

5 Stunden Java kenne ich nur zu gut, hab es auch schon auf ganz andere Spitzen zu meinen Lernzeiten geschafft, aber das ist ein anderes Thema. 

Die Terminänderung ist grundsätzlich nicht sehr schwer zu implementieren, der Anwender muss ja nur einen bestehenden Termin auswählen, in diesem wird dann einfach das neue Datum gesetzt.


----------



## AndiE (10. Dez 2012)

Der "immerwährende Kalender" ist ja ganz interessant, aber passt das auch zu deinem Programm? Praktisch kannst du fast schon mit dem 1.1.2013 beginnen, denn rückwärtige Termine macht man doch nicht. Die Berechnung ließe sich mit Schleifen über Arrays auch einfacher gestalten. 

Ich würde mir einen Kopf darüber machen, wie die Termine dargestellt werden. Ein Monatsplan als grobe Übersicht. Oder ein Wochenplan, wie bei einem Hausaufgabenheft, wäre eine Idee. Eine andere Ansicht bei mehr Terminen wäre eine Tagesansicht( Welche Termine heute?).

Wenn der 31.12.12 ein Montag ( Index 1) ist, dann ist, dann kannst du modulo 7 für jeden folgenden Tag im Jahr den Wochentag berechnen.


----------



## maddin1992 (11. Dez 2012)

Meine Aufgabe jetz ganz explizit

Es sollte möglich sein Termine einzutragen,ein termin besteht aus name,datum,uhrzeit und beschreibung

Es muss möglich sein,Termine zu bearbeiten (z.b einen Termin um x Tage zu verschieben.

Das sollen wir tatsächlich mit Mthoden machen,hab zwar echt kein Plan wie das gehen soll,aber versuch mich durchzukämpfen.

Hab mein Menü jetz mal mim scanner gemacht funzt auch soweit.


```
// Fünf Termine
    String[] termine=new String[5];
    for (int i=1;i<5;i++)
      termine[i]="";
    
    // Schleife
    boolean finish=false;
     while (!finish) {
    	
      // Bildschirmmenue
      System.out.println("\n1 = Neuen Termin eintragen");
      System.out.println("2 = Termine ausgeben");
      System.out.println("3 = Terminbearbeitung");
      System.out.println("4 = Programm beenden\n");
      Scanner scr = new Scanner (System.in);
      int auswahl;
      auswahl = scr.nextInt();
      
      
      // Fallunterscheidung
      switch(auswahl) {
      
        case  1: // Termine eingeben
        	
          int terminNummer=scr.nextInt();System.out.println("Termin Nummer:");
          String eingabe=scr.nextLine();System.out.println("Termin:");
          
          // Termin einordnen
          termine[terminNummer]=eingabe;
          break;
          
        case  2: // Termine ausgeben
          for (int i=0;i<5;i++)
            System.out.println("\n"+i+" .Termin: "+termine[i]);
          break;
          
        
        case 3: //Termine bearbeiten
        	System.out.println("Welchen Termin möchten Sie bearbeiten? Bitte geben Sie die Termin Nummer ein: ");
        	int zuBearbeitenderTermin = scr.nextInt();System.out.println("Termin Nummer");
        	System.out.println("Bitte geben Sie die neuen Terminbeschreibung ein");
        	String bearbeiteteTermin = scr.nextLine();
        	termine[zuBearbeitenderTermin] = bearbeiteteTermin;	
           break;
        
        case 4: //Termin verschieben
         
        
        case 5: // Programm beenden
          finish=true;
          break;
          
        default: // Falsche Zahl eingegeben
          System.out.println("Eingabefehler!");
      }
    }
  }
}
```


----------



## Fab1 (11. Dez 2012)

Ach das schaffst du schon. Methoden kann man grundsätzlich für fast alles erstellen, aber der Sinn von Methoden ist Code wiederverwendbar zu machen. Nun ist die Frage, welche Stellen in deinem Programm muss du öfters wie einmal verwenden? Termin erstellen, ändern, löschen o.ä. zum Beispiel^^


----------



## maddin1992 (11. Dez 2012)

weiß echt net wie ich das angehen soll


----------



## AndiE (11. Dez 2012)

Die Ideen sind doch schon da. Es könnte etwa so ( ungetestet) aussehen:


```
...

// termine- ein Termin besteht aus Datum, uhrzeit und beschreibung
string[] termin= new string[100];
string[] uhrzeit= new string[100];
string[] dtaum= new string [100];

...

switch(auswahl)
{
... 
case 1: TerminEinfuegen();
            break;
...

}

public void TeminEinfügen()
{
//Code zum Termin einfügen
}
```

Das ganze nennt sich "Top down- Button up"-Prinzip und gehört zum prodezuralen Programmierparadiga.


----------



## maddin1992 (11. Dez 2012)

so habs jetz mal mit den Methoden mehr oder weniger hinbekommen also Termin Einfügen klappt und mit der Uhrzeit auch nur wenn ich mir die Termine anzeigen lassen will kommt Termin=0 weil er irwie net draufzugreifen kann....muss da mit den Arrays arbeiten????Sorry wenn ich so nerv ^^

So alles mal mit if gemacht mit switch hats net ganz hingehaun

```
package a;
import java.util.Scanner;

public class Termine {

	
	
	
	public static void main(String[] args) {
		
		// Kalender a = new Kalender();
		
		
		 //string[] termin= new string[100];
		// string[] uhrzeit= new string[100];
		 //string[] datum= new string [100];
		 
		 
				 
				 
		    String bearbeiteteTermin=null;
		    int auswahl;
		    //Kalender a = new Kalender();
		    
		    Scanner scr1 = new Scanner (System.in);
		    Scanner scr = new Scanner (System.in);
		    String eingabe = null;
		    
		    // Schleife
		    boolean finish=false;
		    while (!finish) {
		    	
		      // Bildschirmmenue
		      System.out.println("\n1 = Neuen Termin eintragen");
		      System.out.println("2 = Termine ausgeben");
		      System.out.println("3 = Terminbearbeitung");
		      System.out.println("4 = Programm beenden\n");
		  
		     
		      
		      // Fallunterscheidung
		      String s = null;
		      s = scr1.next();
		      
		     //Termine eingeben
		     if (s.equals("1"))
		    	 
		     {    
		      terminEinfuegen();  
		      uhrzeitAngeben();
		     }
		     
		     //Termine ausgeben     
		     else if ( s.equals("2"))
		     {
		      System.out.println("\n"+" Termin: "+ eingabe);
		     }   
		   
		          
		     //Termine bearbeiten
		     else if (s.equals("3"))
		     {
		     	System.out.println("Bitte geben Sie die neuen Terminbeschreibung ein");
		    	eingabe = scr.nextLine();   	
		     }
		     
		       // case 4: //Termin verschieben
		        
		     
		       // Programm beenden
		       else     
		       {
		       finish=true;
		       System.out.println("Sie haben das Programm beendet");
		       }


		      }
		    }

	private static void uhrzeitAngeben() {
		
		Scanner stundeAngeben = new Scanner (System.in);
		System.out.println("Geben Sie bitte Ihre Stunde digital an");
		int eingabeStunde = stundeAngeben.nextInt();
		
		Scanner minutenAngeben = new Scanner (System.in);
		System.out.println("Geben sie bitte Ihre Minuten an");
		int eingabeMinute = minutenAngeben.nextInt();												
	   }

	
	private static void terminEinfuegen() {
		
		 Scanner terminEinfuegen = new Scanner (System.in);
		 System.out.println("Termin:");
         String eingabe = terminEinfuegen.nextLine();		 
	}
}
```


----------



## Fab1 (11. Dez 2012)

Du sagst ja

```
String eingabe = null;
```
und im Anschluss wird die Variable ausgegeben. Kein Wunder das hier nichts rauskommt 

Erstmal musst du doch wissen, welcher Termin angezeigt werden soll und dieser muss dann ausgegeben werden. Die Information welcher Termin angezeigt werden soll, die hast du ja noch nicht. Ich würde dann zum Beispiel mal den Benutzer fragen, welchen Termin er denn angezeigt haben möchte. Oder zum Beispiel alle Termine am Datum X sollen angezeigt werden. Muss man halt dann schauen


----------



## maddin1992 (12. Dez 2012)

ja hey leute hat alles bis jetz super geklappt aber nur noch eine sache wieder mit dem ausgeben kommt nur bei allem 0 raus,wie ichs hal ganz oben mit 0 initialisiert hab wie bieg ichs jetz hin dass er auf mein eingeben Termin zugreifen kann.....eig nur der 2.java code relevant



```
package a;

import java.util.Scanner;

public class Termin1 {
	int gesuchterMonat,gesuchtesJahr,Stunde,Minute=0;
	String eingabe = null;
	int gesuchterTag=0;
	
	public Termin1()
	{
	
		
		
		Scanner tagAngeben = new Scanner (System.in);
		System.out.println("Geben Sie bitte Ihren Tag an");
		gesuchterTag = tagAngeben.nextInt();
		
		Scanner monatAngeben = new Scanner (System.in);
		System.out.println("Geben sie bitte Ihren Monat an");
		gesuchterMonat = monatAngeben.nextInt();
		
		Scanner jahrAngeben = new Scanner (System.in);
		System.out.println("Geben sie bitte Ihr Jahr an");
		 gesuchtesJahr = jahrAngeben.nextInt();

		
		Scanner stundeAngeben = new Scanner (System.in);
		System.out.println("Geben Sie bitte Ihre Stunde digital an");
		Stunde = stundeAngeben.nextInt();
		
		Scanner minutenAngeben = new Scanner (System.in);
		System.out.println("Geben sie bitte Ihre Minuten an");
		 Minute = minutenAngeben.nextInt();												
	                                            
						
		 Scanner terminEinfuegen = new Scanner (System.in);
		 System.out.println("Termin:");
         eingabe = terminEinfuegen.nextLine();
         
         
    System.out.println("Terminname:" + eingabe);
	System.out.println("Datum: "+gesuchterTag+"."+gesuchterMonat+"."+gesuchtesJahr);
	System.out.println("Uhrzeit: " +Stunde+":"+Minute+" Uhr");
	
	
	
      //Kalender  
		 
      int jahr = 1584;
                                  
      int vergangeneTage = 0;     
      
      //Schaltjahr deklariert
      boolean schaltjahr = false;    
      
      while (jahr <= gesuchtesJahr) {  
    	  
    	  // Errechnug eines Schaltjahre oder eines Nichtschaltjahrs
    	  if((jahr%4==0 && jahr%100!=0) || (jahr%400==0)){
    			schaltjahr = true;
    			
    			}
    			
    	  else {
    			schaltjahr=false;
    			}
        
          //Falls Schaltjahr 366 Tage im Jahr 
          if (schaltjahr == true) {                                           
          vergangeneTage = vergangeneTage + 366;     
          }
          
          //Falls kein Schaltjahr 365 Tage im Jahr
          else {
          vergangeneTage = vergangeneTage 
        		  +365;
          }
        
        jahr++;  
        
      }
      
      int Februar = 28;                                     
      
      if (schaltjahr == true) {                             
         Februar = 29;                                      
         vergangeneTage = vergangeneTage -366;             
          } 
      
      else {
         vergangeneTage = vergangeneTage -365;             
         }
 
   // Errechnug Monat
      switch (gesuchterMonat) {                             
                                                            
      case 1:                                               
        vergangeneTage = vergangeneTage + 0;
        break;       
      case 2:
        vergangeneTage = vergangeneTage + 31;
        break;          
      case 3:
        vergangeneTage = vergangeneTage + 31 + Februar;
        break;          
      case 4:
        vergangeneTage = vergangeneTage + 31 + Februar + 31;
        break;          
      case 5:                                                                                               
        vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30;
        break;          
      case 6:
        vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31;
        break;          
      case 7:
        vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31 + 30;
        break;          
      case 8:
        vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31 + 30 +31;
        break;          
      case 9:
        vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31 + 30 +31 +31;
        break;          
      case 10:
        vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31 + 30 +31 +31 + 30;
        break;          
      case 11:
        vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31 + 30 +31 +31 + 30 + 31;
        break;          
      case 12:
        vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31 + 30 +31 +31 + 30 + 31 + 30;
        break;
      default: 
        System.out.println("Offenbar gab es einen Fehler bei der Berechnung! \n Vielleicht bei der Monatseingabe vertippt?");
        break;
      }   
      
      //Errechnung des Wochentags mithilfe Gaußscher Formel
      int Wochentag = (vergangeneTage + gesuchterTag - 1) % 7;                      
                                                                                
      switch (Wochentag) {
      
      case 0:
        System.out.println("Der Tag ist ein Sonntag!");             
        break;
      case 1:
        System.out.println("Der Tag ist ein Montag!");            
        break;
      case 2:
        System.out.println("Der Tag ist ein Dienstag!");               
        break;
      case 3:
        System.out.println("Der Tag ist ein Mittwoch!");             
        break;       
      case 4:
        System.out.println("Der gesuchte Tag ist ein Donnerstag!");         
        break;
      case 5:
        System.out.println("Der Tag ist ein Freitag!");                
        break;
      case 6:
        System.out.println("Der Tag ist ein Samstag!");                
        break;
      default: 
        System.out.println("Offenbar gab es einen Fehler bei der Berechnung!");
        break;
      }
      
//Errechnung Kalenderwoche
    int tage=0;
  	switch(gesuchterMonat){
  	
	case 12:
    	tage = tage+30;
    case 11:
    	tage = tage+31;
    case 10:
    	tage = tage+30;
    case 9:
    	tage = tage+31;
    case 8:
    	tage = tage+31;
    case 7:
    	tage = tage+30;
    case 6:
    	tage = tage+31;
    case 5:
    	tage = tage+30;
    case 4:
    	tage = tage+31;
    case 3:
    	tage = tage+28;
    case 2:
        tage = tage+31;
    case 1:
        tage = tage+gesuchterTag;
    }
   
    int kw = tage % 7 < 3 ? tage/7 : (tage-1)/7+1 ;
    System.out.println("Es ist die " + kw+". Kalenderwoche" );


      }	    

	
}
```


```
package a;

import java.util.Scanner;

public class Termine {

	public static void main(String[] args) {
		Termin1 ersterTermin = null;



		Scanner Auswahl = new Scanner(System.in);
		int jahr=0;
		int monat = 0;
		int tag = 0;
		int Stunde = 0;
		int Minute = 0;
		String eingabe = null;

		// Schleife
		boolean finish = false;
		while (!finish) {

			// Bildschirmmenue
			System.out.println("\n1 = Neuen Termin eintragen");
			System.out.println("2 = Terminbearbeitung");
			System.out.println("3 = Terminausgabe");
			System.out.println("4 = Programm beenden");

			// Fallunterscheidung
			String s = null;
			s = Auswahl.next();

			// Termine eingeben
			if (s.equals("1"))

			{
				Termin1 aaa = new Termin1();
			}

			else if (s.equals("2")) {
				
				System.out.println("Bitte geben Sie ein neues Tag ein.");
				Scanner tagEingabe = new Scanner(System.in);
				tag = tagEingabe.nextInt();

				System.out.println("Bitte geben Sie ein neuen Monat ein.");
				Scanner monatEingabe = new Scanner(System.in);
				monat = monatEingabe.nextInt();

				System.out.println("Bitte geben Sie ein neuen Jahr ein.");
				Scanner jahrEingabe = new Scanner(System.in);
				jahr = jahrEingabe.nextInt();

				System.out.println("Bitte geben Sie ein neue Stunde ein.");
				Scanner stunde = new Scanner(System.in);
				Stunde = stunde.nextInt();

				System.out.println("Bitte geben Sie ein neues Minute ein.");
				Scanner minute = new Scanner(System.in);
				Minute = minute.nextInt();
				
				System.out.println("Bitte geben Sie die neuen Terminbeschreibung ein");
				Scanner terminBeschreibung = new Scanner(System.in);
				eingabe = terminBeschreibung.nextLine();


				System.out.println("Ihr neuer Termin:");
				System.out.println("Neuer Terminname: "+ eingabe);
				System.out.println("Datum: "+tag+"."+monat+"."+jahr);
				System.out.println("Uhrzeit: "+Stunde+":"+Minute);
			}
			
			else if (s.equals("3")) {
				
				
				System.out.println("Ihr neuer Termin:");
				System.out.println("Neuer Terminname: "+ eingabe);
				System.out.println("Datum: "+ tag+"."+monat+"."+jahr);
				System.out.println("Uhrzeit: "+Stunde+":"+Minute);
			}
			
			else {
				finish = true;
				System.out.println("Sie haben das Programm beendet");
			}
		}

	}

}
```


----------



## maddin1992 (12. Dez 2012)

Kommt schon Leute,ist die letzte Funktion die ich noch brauche muss es morgen abgeben und dann is finitio und endlich erstmal ne zeitlang ruche mit java ^^


----------



## Fab1 (12. Dez 2012)

Also. Es geht ja jetzt um die Funktion 3 also immer noch Termine anzeigen oder?

Meine erste Frage, die ich dazu habe was willst du denn Anzeigen? Du musst doch einen Termin auswählen um diesen anzeigen zu können.

Dafür, dass du dein Programm morgen abgeben musst, hast du dich relativ spät gemeldet.

Mal am Rande zu deinem Programm was mir noch nicht gefällt und was dir vielleicht einen Denkanstoß geben sollte. Java Konventionen sollten eingehalten werden. Variablen klein usw.

Objektorientiert ist das ganze nicht, also wirklich gar nicht.

[EDIT]Ok Schleife übersehen
[/EDIT]

Die Variablen werden ja nur initialisiert,wenn Fall 1 oder Fall2 auftritt. Nun beim zweiten Fall muss nichts geändert werden, aber bei 1 müsste man die Variablen von der Klasse Termine mit den von dem Objekt von Termin1 initialisieren.


----------



## Fab1 (12. Dez 2012)

Ich denke, so sollte es dann funktionieren. Das heißt, wenn Fall 1 oder 2 aufgerufen wird, dann zeigt Fall 3 etwas an, ansonsten nicht. Aber schön, finde ich das ganze trotzdem nicht. 


```
package a;

import java.util.Scanner;
 
public class Termine {
 
    public static void main(String[] args) {
       
        Scanner Auswahl = new Scanner(System.in);
        int jahr=0;
        int monat = 0;
        int tag = 0;
        int Stunde = 0;
        int Minute = 0;
        String eingabe = null;
 
        // Schleife
        boolean finish = false;
        while (!finish) {
 
            // Bildschirmmenue
            System.out.println("\n1 = Neuen Termin eintragen");
            System.out.println("2 = Terminbearbeitung");
            System.out.println("3 = Terminausgabe");
            System.out.println("4 = Programm beenden");
 
            // Fallunterscheidung
            String s = null;
            s = Auswahl.next();
 
            // Termine eingeben
            if (s.equals("1"))
 
            {
                Termin1 aaa = new Termin1();
                jahr = aaa.gesuchtesJahr;
                monat = aaa.gesuchterMonat;
                tag = aaa.gesuchterTag;
                Stunde = aaa.Stunde;
                Minute = aaa.Minute;
                
                
                
            }
 
            else if (s.equals("2")) {
                
                System.out.println("Bitte geben Sie ein neues Tag ein.");
                Scanner tagEingabe = new Scanner(System.in);
                tag = tagEingabe.nextInt();
 
                System.out.println("Bitte geben Sie ein neuen Monat ein.");
                Scanner monatEingabe = new Scanner(System.in);
                monat = monatEingabe.nextInt();
 
                System.out.println("Bitte geben Sie ein neuen Jahr ein.");
                Scanner jahrEingabe = new Scanner(System.in);
                jahr = jahrEingabe.nextInt();
 
                System.out.println("Bitte geben Sie ein neue Stunde ein.");
                Scanner stunde = new Scanner(System.in);
                Stunde = stunde.nextInt();
 
                System.out.println("Bitte geben Sie ein neues Minute ein.");
                Scanner minute = new Scanner(System.in);
                Minute = minute.nextInt();
                
                System.out.println("Bitte geben Sie die neuen Terminbeschreibung ein");
                Scanner terminBeschreibung = new Scanner(System.in);
                eingabe = terminBeschreibung.nextLine();
 
                System.out.println("Ihr neuer Termin:");
                System.out.println("Neuer Terminname: "+ eingabe);
                System.out.println("Datum: "+tag+"."+monat+"."+jahr);
                System.out.println("Uhrzeit: "+Stunde+":"+Minute);
            }
            
            else if (s.equals("3")) {
                
                
                System.out.println("Ihr neuer Termin:");
                System.out.println("Neuer Terminname: "+ eingabe);
                System.out.println("Datum: "+ tag+"."+monat+"."+jahr);
                System.out.println("Uhrzeit: "+Stunde+":"+Minute);
            }
            
            else {
                finish = true;
                System.out.println("Sie haben das Programm beendet");
            }
        }
 
    }
 
}
```

[EDIT]
Deine Konsolenausgaben kannst du ja nochmal auf Rechtschreibung überprüfen, damit nicht sowas hier rauskommt. 



> Bitte geben Sie ein neues Tag ein.


[/EDIT]


----------



## maddin1992 (12. Dez 2012)

ja große weltklasse danke dir echt und trink morgen eins auf dich.....schön und gut is es auf keinen fall ist ja noch nicht die finale abgabe.Bin ertsmal froh dass ich das Grundgerüst irgenwie hinbekommen habe,werde noch Arrays um mehr Termine und den ganzen Schmarn hinzufügen aber so sollte es für morgen reichen einen Haken zu bekommen ----> bestanden ^^

hat echt genug nerven gekostet morgen 2 abgabetermine für programmieren und was anderes kreatives

hab mich hal zuerst auf das kreative gestürzt und die zeit vergessen naja werd mich bestimmt wieder melden wenns wieder heißt programmieren :applaus::applaus::applaus:


----------



## Fab1 (12. Dez 2012)

Du sprichst das Problem an deinem Programm gerade schon selbst an. 



> werde noch Arrays um mehr Termine und den ganzen Schmarn hinzufügen



Grundsätzlich sollte es eine Klasse mit dem Namen Termin geben, diese hat die Instanzvariablen die für einen Termin nötig sind. Auf diese kann man mit getter und setter Methoden zugreifen. Wenn du also einen neuen Termin brauchst, dann machst du einfach ein neues Objekt von Termin. 

Diese Objekte von Termin speicherst du dann in einer geeigneten Struktur und somit kannst du relativ leicht darauf zugreifen und die Sachen ändern.

Aber gut, wenn es eh noch nicht die Finale Version ist, dann wünsch ich dir morgen mal viel Erfolg, dass du deinen Hacken bekommst.

Was mich noch interessieren würde, für was musstest du das machen? Studium, Schule, Berufsschule?


----------



## maddin1992 (12. Dez 2012)

ne fürs Studium im Bereich Medieninformatik


----------



## maddin1992 (13. Dez 2012)

Weiter gehts also bin dabei mit Array zu arbeiten....gleiches Problem besteht mit der Ausgabe der Termine,da wir in der main Klasse kaum was stehen soll,hab ich die Klasse Termin wie mir befohlen erstellt mit Uhrzeit,Datum,Beschreibung und mit der Auswahl 5 Termine zu erstellen.Wie schaffe ichs jetz den Termin im Array(der in der main Methode steht) abzuspeichern.Da wir noch kein getter und setter hatten möchte ich diese Möglichkeit erstmal ausschliessen(nur wenns sein muss).Bitte um kleine Hilfestellung bzw. Denkanstoss.


```
import java.util.Scanner;

public class Calendar {

	public static void main(String[] args) {

		// Fünf Termine
		String[] termine = new String[5];
		for (int i = 1; i < 5; i++)
			termine[i] = "";

		// Schleife
		boolean finish = false;
		while (!finish) {

			// Bildschirmmenue
			System.out.println("\n1 = Neuen Termin eintragen");
			System.out.println("2 = Termine ausgeben");
			System.out.println("3 = Terminbearbeitung");
			System.out.println("4 = Programm beenden\n");

			Scanner Auswahl = new Scanner(System.in);
			String s = null;
			s = Auswahl.next();

			// Fallunterscheidung
			if (s.equals("1")) {
				System.out.println("Termin Nummer:");
				Scanner abc = new Scanner(System.in);
				int terminNummer = abc.nextInt();
				
				//System.out.println("Termin:");
				//String eingabe = abc.next();

				Termin1 a = new Termin1();

				// Termin der Terminnummer zuordnen
				//termine[terminNummer] = eingabe;
			}

			// Termine ausgeben
			else if (s.equals("2")) {
				for (int i = 0; i < 5; i++)
					System.out.println("\n" + i + " .Termin: " + termine[i]);
			}

			// Termine bearbeiten
			else if (s.equals("3")) {
				System.out.println("Welchen Termin möchten Sie bearbeiten? Bitte geben Sie die Termin Nummer ein: ");
				Scanner abc = new Scanner(System.in);
				int zuBearbeitenderTermin = abc.nextInt();
				
				System.out.println("Termin Nummer");
				System.out.println("Bitte geben Sie die neuen Terminbeschreibung ein");
				String bearbeiteteTermin = abc.next();
				
				termine[zuBearbeitenderTermin] = bearbeiteteTermin;
			}

			// Programm beenden
			else {
				finish = true;
			}
			// break;
		}
	}
}
```



```
import java.util.Scanner;

public class Termin1 {
	int gesuchterMonat, gesuchtesJahr, gesuchterTag, stunde, minute = 0;
	String eingabe = null;

	public Termin1() {
		
		
									
		Scanner abc = new Scanner(System.in);
		System.out.println("Geben Sie bitte Ihren Tag an");
		gesuchterTag = abc.nextInt();

		Scanner monatAngeben = new Scanner(System.in);
		System.out.println("Geben sie bitte Ihren Monat an");
		gesuchterMonat = monatAngeben.nextInt();

		Scanner jahrAngeben = new Scanner(System.in);
		System.out.println("Geben sie bitte Ihr Jahr an");
		gesuchtesJahr = jahrAngeben.nextInt();

		Scanner stundeAngeben = new Scanner(System.in);
		System.out.println("Geben Sie bitte Ihre Stunde digital an");
		stunde = stundeAngeben.nextInt();

		Scanner minutenAngeben = new Scanner(System.in);
		System.out.println("Geben sie bitte Ihre Minuten an");
		minute = minutenAngeben.nextInt();

		Scanner terminEinfuegen = new Scanner(System.in);
		System.out.println("Termin:");
		eingabe = terminEinfuegen.nextLine();

		
		System.out.println("\nDatum: " + gesuchterTag + "." + gesuchterMonat+ "." + gesuchtesJahr);
		System.out.println("Uhrzeit: " + stunde + ":" + minute + " Uhr");
		System.out.println("Terminname: "+ eingabe);

		Scanner sc = new Scanner(System.in);

		int jahr = 1584;

		int vergangeneTage = 0;

		// Schaltjahr deklariert
		boolean schaltjahr = false;

		while (jahr <= gesuchtesJahr) {

			// Errechnug eines Schaltjahre oder eines Nichtschaltjahrs
			if ((jahr % 4 == 0 && jahr % 100 != 0) || (jahr % 400 == 0)) {
				schaltjahr = true;

			}

			else {
				schaltjahr = false;
			}

			// Falls Schaltjahr 366 Tage im Jahr
			if (schaltjahr == true) {
				vergangeneTage = vergangeneTage + 366;
			}

			// Falls kein Schaltjahr 365 Tage im Jahr
			else {
				vergangeneTage = vergangeneTage + 365;
			}

			jahr++;

		}

		int Februar = 28;

		if (schaltjahr == true) {
			Februar = 29;
			vergangeneTage = vergangeneTage - 366;
		}

		else {
			vergangeneTage = vergangeneTage - 365;
		}

		// Errechnug Monat
		switch (gesuchterMonat) {

		case 1:
			vergangeneTage = vergangeneTage + 0;
			break;
		case 2:
			vergangeneTage = vergangeneTage + 31;
			break;
		case 3:
			vergangeneTage = vergangeneTage + 31 + Februar;
			break;
		case 4:
			vergangeneTage = vergangeneTage + 31 + Februar + 31;
			break;
		case 5:
			vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30;
			break;
		case 6:
			vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31;
			break;
		case 7:
			vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31 + 30;
			break;
		case 8:
			vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31 + 30
					+ 31;
			break;
		case 9:
			vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31 + 30
					+ 31 + 31;
			break;
		case 10:
			vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31 + 30
					+ 31 + 31 + 30;
			break;
		case 11:
			vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31 + 30
					+ 31 + 31 + 30 + 31;
			break;
		case 12:
			vergangeneTage = vergangeneTage + 31 + Februar + 31 + 30 + 31 + 30
					+ 31 + 31 + 30 + 31 + 30;
			break;
		default:
			System.out
					.println("Offenbar gab es einen Fehler bei der Berechnung! \n Vielleicht bei der Monatseingabe vertippt?");
			break;
		}

		// Errechnung des Wochentags mithilfe Gaußscher Formel
		int Wochentag = (vergangeneTage + gesuchterTag - 1) % 7;

		switch (Wochentag) {

		case 0:
			System.out.println("Der Tag ist ein Sonntag!");
			break;
		case 1:
			System.out.println("Der Tag ist ein Montag!");
			break;
		case 2:
			System.out.println("Der Tag ist ein Dienstag!");
			break;
		case 3:
			System.out.println("Der Tag ist ein Mittwoch!");
			break;
		case 4:
			System.out.println("Der gesuchte Tag ist ein Donnerstag!");
			break;
		case 5:
			System.out.println("Der Tag ist ein Freitag!");
			break;
		case 6:
			System.out.println("Der Tag ist ein Samstag!");
			break;
		default:
			System.out
					.println("Offenbar gab es einen Fehler bei der Berechnung!");
			break;
		}

		// Errechnung Kalenderwoche
		int tage = 0;
		switch (gesuchterMonat) {

		case 12:
			tage = tage + 30;
		case 11:
			tage = tage + 31;
		case 10:
			tage = tage + 30;
		case 9:
			tage = tage + 31;
		case 8:
			tage = tage + 31;
		case 7:
			tage = tage + 30;
		case 6:
			tage = tage + 31;
		case 5:
			tage = tage + 30;
		case 4:
			tage = tage + 31;
		case 3:
			tage = tage + 28;
		case 2:
			tage = tage + 31;
		case 1:
			tage = tage + gesuchterTag;
		}

		int kw = tage % 7 < 3 ? tage / 7 : (tage - 1) / 7 + 1;
		System.out.println("Es ist die " + kw + ". Kalenderwoche");

	}

}
```


----------



## AndiE (13. Dez 2012)

OOP ist dafür natürlich geeigneter. aber aus irgend einem Grude, der mir unverständlich ist, wollen die Lehrer immer noch prozedurale Lösungen. Bevor OOP das wurde, was es heute ist, und wir noch in BASIC und so  programmiert haben( vor vielen Jahren also), da hat man die Datenhaltung in Arrays machen müssen. In etwa würde ich das Kalender-Problem prozedural so lösen (Pseudocode).


```
public class calender
{
private string[] temine= new array[10][3];
private int zähler=0;

 public void main()
 {
 int e;
 int i;
 //Feld initialisieren
 for (i=0; i<10;i++)
  termine[i][0]="leer";
  do
  {
  anzeige Menu();
  e=eingabe();
    switch(e)
    {
       case 1: eingeben();
                      break;
       case 2: anzeigen();
                      break;
       case 3: bearbeiten();
                      break;
    }
  }while(e!=4);
}

public void eingeben()
{
  string in;
  Ausgabe:"Datum"
  in=eingabe;
  termine[zaehler][0]=in;
  Ausgabe:"Zeit"
  in=eingabe;
  termine[zaehler][1]=in;
  Ausgabe:"beschreibung"
  in=eingabe;
  temine[zaehler][2)=in;
  zaehler++;
}

public void anzeigen()
{
  int i=0;
  string text;
  text=termine[i][0] 
  while(text ungleich "leer")
  {
     Ausgabe:Termine[i][0];
     Ausgabe:Termine[i][1];
     Ausgabe:Termine[i][2];
     i++;
  }
}

public void bearbeiten()
{
/ hier kommt der Code zum Bearbeiten
}

}
```


----------



## maddin1992 (13. Dez 2012)

Glaube du hast mich nicht richtig verstanden oder ich hab mich falsch ausgedrückt,ich soll es schon objetorientiert machen aber eben ohne diese get und set Funktion dafür mit Arrays.Das muss doch irgenwie möglich sein.


----------



## maddin1992 (16. Dez 2012)

So durch einigen Java Büchern bin ich mit getter und setter ziemlich gut ausgekommen und für meine Verhältnisse auch ziemlich weit.Habe meinen ganzen Kalender verändert Methoden,Array,Getter und Setter reingepackt......aber wie immer dieses eine Problem,wie kann ich mein Array in der Konsole ausgeben.Habe schon alles mögliche getestet mit to string,mit dem import util array von java mit getter kam aber immer dies raus *b.Termin@a62fc3 null null null null * oder ähnliches,bitte wieder um eure Hilfe


```
package b;

import java.util.Scanner;

public class TerminMain {

	public static void main(String[] args) {

		Termin array[] = new Termin[5];
		

		// Schleife
		boolean finish = false;
		while (!finish) {

			// Bildschirmmenue
			System.out.println("\n1 = Neuen Termin eintragen");
			System.out.println("2 = Terminebearbeitung");
			System.out.println("3 = Termine ausgeben");
			System.out.println("4 = Programm beenden\n");
			
			Scanner Auswahl = new Scanner(System.in);
			String s = null;
			s = Auswahl.next();

			// Fallunterscheidung
			if (s.equals("1")) {
				TerminPlanung a = new TerminPlanung();
				a.terminEinfuegen(array);
			}
			// Terminbearbeitung
			else if (s.equals("2")) {
				Terminbearbeitung b = new Terminbearbeitung();
				b.terminBearbeiten(array);
			}
			
			//Terminausgabe
			else if (s.equals("3")) {
				Ausgabe c = new Ausgabe ();
				c.terminAusgabe(array);
			}	
				
				else {
					finish=true;
					System.out.println("Ihre Eingabe war fehlerhaft,starten sie das Programm neu sie hurensohn");
				}

			}
		}
	}
```


```
package b;
import java.util.Scanner;


public class Termin {
	private String terminName="";
	private int tag,monat,jahr,stunde,minute=0;
	
	
	// leerer Konstruktor
		public Termin(){		
		}
		
		public Termin(String a, int b, int c, int d, int h, int m){
			terminName=a;
			tag=b;
			monat=c;
			jahr=d;
			stunde=h;
			minute=m;
		}	
		
		
		
		public void setTerminName(String a){
			terminName = a;
		}
		public String getTerminName(){
			return terminName;
		}
		
		
		
		public void setTag(int b){
             tag = b;   
		}
		public int getTag(){
			return tag;
		}
		
		
		public void setMonat(int c){
            monat = c;   
		}
		public int getMonat(){
			return monat;
		}
		
		
		
		public void setJahr(int d){
            jahr = d;   
		}
		public int getJahr(){
			return jahr;
		}
		
		public void setStunde(int h){
            stunde = h;   
		}
		public int getStunde(){
			return stunde;
		}
		
		public void setMinute(int m){
            minute = m;   
		}
		public int getMinute(){
			return minute;
		}
        
        

}
```


```
package b;

import java.util.Scanner;

public class TerminPlanung {

	public void terminEinfuegen(Termin terminArray[]) {

		Termin a = new Termin();

		String eingabe = null;	
		int day=0;
		int month=0;
		int year=0;
		int hour=0;
		int minute=0;
				
		System.out.println("Geben sie eine Terminnummer zwischen 1-4 ein: ");
		Scanner abc = new Scanner(System.in);
		int t = abc.nextInt();

		if (terminArray[t - 1] != null) 
		{
			System.out.println("Der Terminplatz ist belegt");
		}

		else {
			Scanner aa = new Scanner(System.in);
			System.out.println("Geben Sie ihren Terminname ein:");
			eingabe = aa.nextLine();
			a.setTerminName(eingabe);
			terminArray[t - 1] = a;
			String ausgabe = a.getTerminName();
			
			Scanner bb = new Scanner(System.in);
			System.out.println("Geben Sie einen Tag ein: ");
			day = bb.nextInt();
			a.setTag(day);
			terminArray[t - 1]=a;
			int ausgabe1 = a.getTag();
			
			
			Scanner cc = new Scanner(System.in);
			System.out.println("Geben Sie einen Monat ein: ");
			month = cc.nextInt();
			a.setMonat(month);
			terminArray[t -1]=a;
			int ausgabe2 = a.getMonat();
			
			Scanner dd = new Scanner(System.in);
			System.out.println("Geben Sie ein Jahr ein: ");
			year = dd.nextInt();
			a.setJahr(year);
			terminArray[t -1]=a;
			int ausgabe3 = a.getJahr();
			
			Scanner hh = new Scanner(System.in);
			System.out.println("Geben Sie die Stunde digital ein: ");
			hour = hh.nextInt();
			a.setStunde(hour);
			terminArray[t -1]=a;
			int ausgabe4 = a.getStunde();
			
			Scanner mm = new Scanner(System.in);
			System.out.println("Geben Sie die Minuten ein: ");
			minute = mm.nextInt();
			a.setMinute(minute);
			terminArray[t -1]=a;
			int ausgabe5 = a.getMinute();
			
			System.out.println("\nIhr Terminname: "+eingabe);
			System.out.println("Datum: "+day+"."+month+"."+year);
			System.out.println("Ihre Uhrzeit: "+hour+"."+minute);							
			
		}
	}
}
```


```
package b;

import java.util.Scanner;

public class Terminbearbeitung {
	
	public void terminBearbeiten(Termin terminArray[]) {
		
		System.out.println("Geben Sie ihre zu bearbeitende Terminnummer ein: ");
		Scanner aaa = new Scanner(System.in);
		int z = aaa.nextInt();
		
		Termin verändern = terminArray[z - 1];
			
		System.out.println("Ihr neuer Terminname: ");
		Scanner b = new Scanner(System.in);
		String eingabe = b.nextLine();
		verändern.setTerminName(eingabe);
			
		System.out.println("Ihr neuer Tag: ");
		Scanner c = new Scanner(System.in);
		int day = c.nextInt();
		verändern.setTag(day);
		
		System.out.println("Ihr neuer Monat: ");
		Scanner d = new Scanner(System.in);
		int month = d.nextInt();
		verändern.setMonat(month);
		
		System.out.println("Ihr neues Jahr: ");
		Scanner e = new Scanner(System.in);
		int year = e.nextInt();
		verändern.setJahr(year);
		
		System.out.println("Ihre neue Stunde: ");
		Scanner f = new Scanner(System.in);
		int hour = f.nextInt();
		verändern.setStunde(hour);
		
		System.out.println("Ihr neue Minute: ");
		Scanner g = new Scanner(System.in);
		int minute = g.nextInt();
		verändern.setMinute(minute);
					
		terminArray[z - 1] = verändern;
		String ergebnis = terminArray[z - 1].getTerminName();
		
		terminArray[z - 1] = verändern;
		int ergebnis1  = terminArray[z - 1].getTag();
		
		terminArray[z - 1] = verändern;
		int ergebnis2  = terminArray[z - 1].getMonat();
		
		terminArray[z - 1] = verändern;
		int ergebnis3  = terminArray[z - 1].getJahr();
		
		terminArray[z - 1] = verändern;
		int ergebnis4  = terminArray[z - 1].getStunde();
		
		terminArray[z - 1] = verändern;
		int ergebnis5  = terminArray[z - 1].getMinute();
		
								
     	System.out.println("Ihr neuer Terminname: "+ergebnis);
     	System.out.println("Ihr neues Datum: "+ergebnis1+"."+ergebnis2+"."+ergebnis3);
     	System.out.println("Ihre neue Uhrzeit: "+ergebnis4+":"+ergebnis5);
		
		

	}
}
```


```
package b;

//import java.util.Arrays;

public class Ausgabe {
	
	public void terminAusgabe(Termin terminArray[]) {
		
	    for (int i=0; i < terminArray.length; i++) {
	        System.out.print(terminArray[i]+" ");
	       
	        }
	    	    	
	    System.out.println("");
```

mir gehts ums letztere,sorry für so viel programm code hoffe es blickt noch jemand durch


----------



## Fab1 (16. Dez 2012)

Hi,

sieht doch schonmal ganz ordentlich aus. 

Da du ja immer ein festes Array mit einer bestimmten Größe hast entstehen, wenn du nicht alle Felder von dem Array Termine füllst, diese 
	
	
	
	





```
null
```
 Felder. Besser wäre hier zum Beispiel ein dynamisches Array wie eine ArrayList, das heißt hierbei wird nur ein neues Feld angelegt, wenn es gebraucht wird.

Der Grund für diese Hexadezimale Ausgabe beim Array hat etwas mit der toString() Methode von deinen Terminen zu tun. Jede Klasse erbt automatisch Methoden von object, also eben auch toString(). Diese musst du also in deiner Klasse Termin überschreiben.

Sollte dann so aussehen 


```
@Override
        public String toString() {
        	String s = null;
        	s = "Termin: " + tag + "." + monat+ "." + jahr + " um " + stunde + ":" + minute +"Uhr \n";
        	
        	return s;
        }
```

Dann sollte der Termin auch normal ausgegeben werden, wenn man sonst nichts am Programm ändert. Das "null" Problem ist dadurch aber noch nicht behoben.


----------



## maddin1992 (16. Dez 2012)

so schaut die konsolenausgabe aus....für mich reichts ^^ und danke


```
1 = Neuen Termin eintragen
2 = Terminebearbeitung
3 = Termine ausgeben
4 = Programm beenden

3

1.Termin: 
Terminname: affe
Datum: 10.10.2010
Uhrzeit: 12:12 Uhr 
 
2.Termin: null 

3.Termin: null 

4.Termin: null 

5.Termin: 
Terminname: gehen
Datum: 12.9.1999
Uhrzeit: 12:12 Uhr
```

jetz nur noch meine kalenderwochenberechnung und tagesberechnung mit dem datum verbinden und dann finito......das bekomm ich noch hin ^^


----------



## maddin1992 (16. Dez 2012)

yes so geschafft vielen dank für die unterstützung :applaus:


----------

