Har gjort ett program för att hantera datum, kontrollera om de är korrekta, packa dem från heltalen år,månad,datum till en sträng. Sedan en metod för att lägga till en dag, dock utan hänsyn till skottår.. dvs, om datumet är 31 och månaden 1,3 bla bla så blir datumet 1 och månaden++, med undantag för månad 12 då året blir++, och månad&datum blir 1.. i alla fall, stöter på konstiga errors, "illegal start of expression", samt "")" expected".. pejstar koden med pekare på errorsen, obs 2st illegal st of exp, och 1 ")" exp..:
Datum.java
import extra.*;
public class Datum {
private int ar, manad, dag;
// private String s_ar, s_manad, s_dag;
public Datum(int a, int m, int d){ //skapa ett datum
ar = a;
manad = m;
dag = d;
}
/* Metoden ska testa om ett datum är korrekt, den behöver dock inte ta
hänsyn till skottår. */
//public boolean korrektDatum(d_ar, d_manad, d_dag){
public void korrektDatum(int a_ar, int a_manad, int a_dag){
//int m00;
String t;
if (a_ar > 0 && a_manad > 0 && a_manad <= 12 && a_dag > 0 && a_dag <=31 ){
//return true;
//m00=1;
t = "Rätt";
Std.out.println(t);
}
else{
//return false;
//m00=0;
t = "Fel";
Std.out.println(t);
}
}
/* Metoden ökar datumet med en dag. Behöver ej ta hänsyn till skottår. */
public void adderaDag(){
if (manad == 1 || manad == 3 || manad == 5 || manad == 7 || manad == 8 || manad == 10 || manad == 12 ||){
if(dag == 31){
dag = 1;
manad++;
}
a_dag++;
Std.out.println("Datumet har blitt: " + ar + "." + manad + "." + dag + "!!¤#");
}
if(manad == 2){
if(dag == 28){
dag = 1;
manad++;
}
dag++;
Std.out.println("Datumet har blitt: " + ar + "." + manad + "." + dag + "!!¤#");
}
if (manad == 4 || manad == 6 || manad == 9 || manad == 11){
if(dag == 30){
dag = 1;
manad++;
}
dag++;
Std.out.println("Datumet har blitt: " + ar + "." + manad + "." + dag + "!!¤#");
}
if (manad == 12){
if (dag == 31){
dag = 1;
manad = 1;
ar++;
}
dag++;
Std.out.println("Datumet har blitt: " + ar + "." + manad + "." + dag + "!!¤#");
}
}
/* Metoden "packar ihop" år, månad och dag och returnerar ett heltal på
formatet XXXXYYZZ där XXXX är årtalet,
YY månaden och ZZ dagen, t ex 19961124 */
//public int packaDatum(){
public String packaDatum(int a_ar, int a_manad, int a_dag){
String c_manad = "" + a_manad;
String c_dag = "" + a_dag;
if(a_manad<10){
c_manad = "0" + a_manad;
}
if(a_dag<10){
c_dag = "0" + a_dag;
}
String packatDatum;
packatDatum = "" + a_ar + c_manad + c_dag;
return packatDatum;
}
}
Datumtest.java
import extra.*;
public class Datumtest{
public static void main (String[] arg) {
int i=1, d_ar, d_manad, d_dag;
do{
Std.out.print("Vill du köra ett nytt datumtest? 1=ja, 0=nej: ");
i = Std.in.readInt();
Std.in.skipLine();
if (i == 1){
Std.out.println("Ange datumet enligt ÅÅÅÅ MM DD: ");
d_ar = Std.in.readInt();
d_manad = Std.in.readInt();
d_dag = Std.in.readInt();
Datum d1 = new Datum(d_ar, d_manad, d_dag);
Std.out.println("Datumet på formen XXXXMMDD");
Std.out.println(d1.packaDatum(d_ar, d_manad, d_dag));
d1.korrektDatum(d_ar,d_manad,d_dag);
//if (super.m00 i == 1){
adderaDag();
Std.out.println(d1.packaDatum(d_ar, d_manad, d_dag));
//}
}
} while (i == 1);
} // main
} // class
psst, programmet fungerar när jag kommenterar bort metoden adderaDag() i Datum.java, samt antopet till densamme, från Datumtest.java... någon idé?