Guten Tag liebe Boarder,
Ich bin ein kompletter Neuling und versuche zurzeit Empathie aufzubauen für die Programmiersprache Java.
Ich habe folgende Aufgabe zu bewältigen(allgemein):
Einen Kalender programmieren mit gegebenen Algorithmen und festgelegtem Ausgabeschema.
Erwartete Ausgabe:
Kopfzeile als String, Wochentagskürzel und immer 2-stellige Tagesnummern habe ich bis jetzt erfolgreich schreiben können.
Der Kalender ist im amerikanischen Stil und der Sonntag des Mai 2016 ist tatsächlich der 1. des Monats. Jedoch ist es daraufhin abgeleitet im Monat Juni nicht ein Sonntag, sondern ein Mittwoch.
Ich müsste mit den unten angegebenen Algorithmen ein kleine Erweiterung in meinen bisherigen Code einbauen, damit der Scanner einwandfrei läuft und die Ausgabe richtig abwickelt.
Kurz gefasst: 1. Wochenzeile im Juni 2016 soll "So", "Mo" und "Di" leer sein und der Mittwoch = "01"
Bis jetzt konnte ich gedanklich nur fassen, dass höchstwahrscheinlich einen Variable deklariert werden muss, der den 1. Tag im Monat berechnet und eine for/while Schleife die Leerstellen lässt, bis der richtige Tag im Monat angekommen ist und erst dann mit 01, 02, 03 - 28(29,30,31) auffüllt.
Mein bisher getipptes:
Gegebene Algorithmen:
Vielen Dank im Vorhinein für eure Unterstützung.
lg
Ich bin ein kompletter Neuling und versuche zurzeit Empathie aufzubauen für die Programmiersprache Java.
Ich habe folgende Aufgabe zu bewältigen(allgemein):
Einen Kalender programmieren mit gegebenen Algorithmen und festgelegtem Ausgabeschema.
Erwartete Ausgabe:
Java:
******************* Mai 2016 *******************
So Mo Di Mi Do Fr Sa
01 02 03 04 05 06 07
08 09 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Kopfzeile als String, Wochentagskürzel und immer 2-stellige Tagesnummern habe ich bis jetzt erfolgreich schreiben können.
Der Kalender ist im amerikanischen Stil und der Sonntag des Mai 2016 ist tatsächlich der 1. des Monats. Jedoch ist es daraufhin abgeleitet im Monat Juni nicht ein Sonntag, sondern ein Mittwoch.
Ich müsste mit den unten angegebenen Algorithmen ein kleine Erweiterung in meinen bisherigen Code einbauen, damit der Scanner einwandfrei läuft und die Ausgabe richtig abwickelt.
Kurz gefasst: 1. Wochenzeile im Juni 2016 soll "So", "Mo" und "Di" leer sein und der Mittwoch = "01"
Bis jetzt konnte ich gedanklich nur fassen, dass höchstwahrscheinlich einen Variable deklariert werden muss, der den 1. Tag im Monat berechnet und eine for/while Schleife die Leerstellen lässt, bis der richtige Tag im Monat angekommen ist und erst dann mit 01, 02, 03 - 28(29,30,31) auffüllt.
Mein bisher getipptes:
Java:
private String getMonatsblatt(int jahr, int monat){
String pattern="###,#00";
DecimalFormat asdf = new DecimalFormat(pattern);
if(kalfunk.istSchaltjahr(jahr)) {
for(int y=0;y < kalfunk.monatslaenge[1][monat];) {
if(y % 7 == 0) {
System.out.println();
}
System.out.print(asdf.format(y=y+1)+" " );
System.out.print(" ");
}
return " ";
} else {
for(int y=0;y < kalfunk.monatslaenge[0][monat];) {
if(y % 7 == 0) {
System.out.println();
}
System.out.print(asdf.format(y=y+1) );
System.out.print(" ");
}
return " ";
}
Gegebene Algorithmen:
Java:
/**
=========================================================================
* Funktion: tagesnummer(int tag, int monat, int jahr)
* Parameter: tag (long) : Tag
* monat (long) : Monat
* jahr (long) : Jahr
* Rueckgabe: n (int) : Tagesnummer rel. zum Jahresanfang
* (1=1.1.,2=2.1.,...365/366=31.12)
* Beschreibung: Algorithmus von Robertson
* =========================================================================
*/
int tagesnummer(int tag, int monat, int jahr)
{
int d, e;
d = (monat+10)/13;
e = tag + (611*(monat+2))/20 - 2*d - 91;
return (e + schaltjahr (jahr) * d );
}
/**
=========================================================================
* Funktion: wochentag_im_jahr(int jahr, int n)
* Parameter: jahr (long) : Jahr
* n (int) : Tagesnummer rel. zum Jahresanfang
* (1=1.1.,2=2.1.,...365/366=31.12)
* Rueckgabe: (int) : Wochentag (0=So, 1=Mo,..., 6=Sa)
* Beschreibung: Algorithmus von Zeller
* =========================================================================
*/
int wochentag_im_jahr(int jahr, int n)
{
int j, c;
j = (jahr-1) % 100;
c = (jahr-1) / 100;
return (28+j+n+(j/4)+(c/4)+5*c) % 7;
}
Vielen Dank im Vorhinein für eure Unterstützung.
lg