Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Ich kopiere jetzt meine Programm-Code hier rein und versuche es euch so zu erklären.
Ich muss 13 als Januar eingeben und 14 als Februar nun will ich 13 durch 1 ersetzen und 14 durch 2. Allerdings muss die Berechnung weiterhin mit 13 und 14 erfolgen.
class P2Wochentag {
/**
* Berechnet den Wochentag zu einem gegebenen Kalenderdatum.
* Verwendet nur int-Arithmetik, keine Kontrollstrukturen.
* Eingabe Tag (1..31), Monat (3..14), Jahr (ccyy) bei Bonus Monat (1..12)
* Ausgabe: Wochentag (1 = Sonntag bis 0 = Samstag)
*/
public static void main(final String[] args) {
int d = 16; //6 bei Bonus 6
int m = 10; //14 bei Bonus 2
int jahr = 2014%100;
int c =2014/100;
int w=(d+(((m+1)*26)/10)+c+(c/4)+(jahr/4)-2*jahr)%7; //Wikipedia Formel
// Januar und Februar als 13. bzw. 14. Monatdie restlichen Monate bleiben gleich
if(monat < 3) {
monat = monat + 12;
jahr -= 1;
}
ANsonsten...
switch(monat){
case 1: monat = 13; jahr -= 1; break;
case 2: monat = 14; jahr -= 1; break;
}
edit:
Als Hinweis, wenn du Hilfe bei deinem Code benötigt, dann BITTE mit gescheiter Variablen Bezeichnung und Kommentare... Das wird DIR auch mehr helfen als das kryptische da oben..
Ich verstehe immer noch nicht was du mit 1/2 machen willst, ausser dass du die ersetzen willst. Aber für mich liest sich das ganze so, als müsstest du die variable m an eine Methode übergeben, da kannst du dann ersetzen wie du fröhlich bist, ohne die 13/14 zu verändern. Setzt aber voraus dass du eine Methode anwenden darfst.
Mal abgesehen davon, dass ich die Methodik die euer Lehrer benutzt um euch Java beizubringen sehr fragwürdig finde. Was soll der Schwachsinn mit der Formel aus Wiki, die nur dazu dient kopiert zu werden und nichts als nur unübersichtlich wirkt.
if-else Anweisung darf ich leider nicht verwenden ebenso wie switch-Anweisungen.
Ich habe den Code geändert leider funktioniert der Code nicht mit Tagen mit "6" da der Tag um eins nach hinten verschoben wird.
class P2Wochentag {
public static void main(final String[] args) {
int q = 28; //6 bei Bonus 6
int m = 10; //14 bei Bonus 2
int jahr = 2014; //Jahreszahl bitte eingeben
int K = jahr%100; // K= letzten zwei stellen des Jahres
int J = jahr/100; // j=ersten zwei stellen des Jahres
int w=(q+(((m+1)*26)/10)+K+(K/4)+(J/4)-2*J)%7; //Wikipedia Formel
Die Aufgabe stammt aus der Hochschule und stammt aus folgendem Buch:
Das Java-Praktikum, dpunkt Verlag 2008, ISBN 978-3-89864-513-3
Aufgabe: Datumsarithmetik
Entwickelt mit: Sun Java 6 SE Development Kit