String für einen int-Wert ausgeben?

HPasch

Grünschnabel
Hey Leute,

wie der Titel schon vermuten lässt möchte ich einem int-Wert einen String zuweisen. Konkreter geht es darum, dass ich mithilfe einer Rechnung zur Bestimmung eines Wochentages, zu einem bestimmten Datum, eine Zahl (int h) herausbekomme.

Nun möchte ich mir aber nicht die errechnete Zahl, sondern einen Wochentag ausgeben lassen. Also beispielsweise für das Ergebnis 0 den "Sonntag".

Habe schon ein wenig herumprobiert, aber bin, wenn es um Java geht, blutiger Anfänger und komme einfach nicht drauf.

Wäre super wenn ihr helfen könntet.

Mfg
 
Hi und Willkommen bei tutorials.de,

Java:
String s;
if(h == 0)
    s = "Sonntag";
else if(h == 1)
    s = "Montag";
else if(h == 2)
    s = "Dienstag";
usw.

Wenn man das öfter an mehreren Stellen im Programm braucht
lohnt sich uU. die Verwendung einer Map und/oder die Auslagerung in eine eigene Methode.

(Gaußsche Wochentagsformel? :))
 
Hey sheel,

danke schonmal für deine Antwort. Hat so auch alles geklappt, allerdings kriege ich nun bei folgendem:

Java:
System.out.println("Der " + t + "." + m + "." + j + " ist ein " + s);

eine Fehlermeldung für "s" : The local variable s may not have been initialized.
 
Du hast den Code falsch übernommen. Zeige mal deinen aktuell kompletten Code.


PS: Code bitte in Codetags packen ([code=java]...[/code]). Ich hab's dir mal für deinen letzten Beitrag gemacht ;)
 
Code lautet:

Java:
import Prog1Tools.IOTools;


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

	int t = IOTools.readInteger("Tage: ");
	int m = IOTools.readInteger("Monate: ");
	int j = IOTools.readInteger("Jahre: ");
	int m1;
	int j1;
	
	if (m<=2) {
		m1 = m+10;
		j1 = j-1; }
	else {
		m1 = m-2;
		j1 = j+0; }

	int c = j1/100;
	int y = j1%100;
	int h = (((26*m1-2)/10)+t+y+y/4+c/4-2*c)%7;

	if (h < 0) {
		h = h + 7; }
	
	String s;
	if (h == 0) {
		s = "Sonntag";
		System.out.println(s); }
	else if (h == 1){
		s = "Montag";
	    System.out.println(s); }
	else if (h == 2){
		s = "Dienstag";
	    System.out.println(s); }
	else if (h == 3){
		s = "Mittwoch";
	    System.out.println(s); }
	else if (h == 4){
		s = "Donnerstag";
	    System.out.println(s); }
	else if (h == 5){
		s = "Freitag";
	    System.out.println(s); }
	else if (h == 6){
		s = "Samstag";
	    System.out.println(s); }

	System.out.println("Der " + t + "." + m + "." + j + " ist ein " + s);

    }
}
 
Zuletzt bearbeitet von einem Moderator:
Wenn du die else-if bis 6 (Samstag) so weitergemacht hast (sehe gerade, du hast :))
kommt der Fehler deshalb, weil s tatsächlich keinen Wert bekommt,
wenn die h etwas Anderes außer 0-6 ist.

Eine mögliche Lösung: Mach nach Samstag noch etwas wie
Java:
else
    s = "Fehler";
dazu.
 
/Edit Vorherigen Inhalt hier gelöscht; war falsch.

Und bitte mal [Strg]+[Shift]+[F] drücken, damit dein Code besser formatiert wird ;)
 

Neue Beiträge

Zurück