Original von Kermit
Ich habe fertig:

import java.io.*;
import java.text.*;
import java.util.*;

class Datum {

public static int tage[] = new int[3];
public static int tagesdatum[] = new int[3];
public static int datum[][] = new int[2][3];
public static int month[][] = new int[3][12];

void einlesenDatum() throws IOException {
int i;
int z=0;
do {
month[z][0]=31; month[z][1]=28; month[z][2]=31; month[z][3]=30; month[z][4]=31; month[z][5]=30;
month[z][6]=31; month[z][7]=31; month[z][8]=30; month[z][9]=31; month[z][10]=30; month[z][11]=31;
int l = z+1;
BufferedReader dt =
new BufferedReader ( new InputStreamReader (System.in) );
do {
System.out.println("\nBitte das Jahr des "+l+". Datums zwischen 1901 und 2100 eingeben:");
datum[z][2] = Integer.parseInt (dt.readLine());
} while (datum[z][2] <1901 || datum[z][2] >2100);
if (datum[z][2]%400 == 0){
month[z][1]=29;
} else if (datum[z][2]%4 == 0 && datum[z][2]%100 != 0) {
month[z][1]=29;}
do {
System.out.println("\nBitte den Monat des "+l+". Datums zwischen 1 und 12 eingeben:");
datum[z][1] = Integer.parseInt (dt.readLine());
datum[z][1]--;
} while (datum[z][1] <0 || datum[z][1] >11);
do {
i = datum[z][1];
System.out.println("\nBitte den Tag des "+l+".Datums eingeben:");
System.out.println("(bei ungueltiger Eingabe bitte erneut versuchen)");
datum[z][0] = Integer.parseInt (dt.readLine());
} while (datum[z][0]<1|| datum[z][0]>month[z][i]);

System.out.print("\nDas "+l+". Datum lautet: "+datum[z][0]+".");
System.out.println(datum[z][1]+1+"."+datum[z][2]);
z=z+1;
} while (z<2);
}

void tagesdatum() throws IOException {
month[2][0]=31; month[2][1]=28; month[2][2]=31; month[2][3]=30; month[2][4]=31; month[2][5]=30;
month[2][6]=31; month[2][7]=31; month[2][8]=30; month[2][9]=31; month[2][10]=30; month[2][11]=31;
GregorianCalendar kal = new GregorianCalendar();
tagesdatum[0] = kal.get(GregorianCalendar.DATE);
tagesdatum[1] = kal.get(GregorianCalendar.MONTH);
tagesdatum[2] = kal.get(GregorianCalendar.YEAR);
if (tagesdatum[2]%400 == 0){
month[2][1]=29;
} else if (tagesdatum[2]%4 == 0 && tagesdatum[2]%100 != 0) {
month[2][1]=29;}
}

void tageberechnen() throws IOException {
int z=0;
for (int p=2 ;z<p; z++){
for (int i=0; i<datum[z][1]; i++)
{ tage[z] += month[z][i]; }
tage[z] += datum[z][0]-1;
System.out.println("\nDie Differenz vom 1.1."+datum[z][2]+" bis zum "+datum[z][0]+"."
+(datum[z][1]+1)+"."+datum[z][2]+" betraegt: "+tage[z]+" Tage");
}
for (int i=0; i<tagesdatum[1]; i++)
{tage[2] += month[2][i];}
tage[2] += tagesdatum[0]-1;
}
}

public class Aufgabe extends Datum {

public static int differenz;
public static int werktage[] = new int[2];

void differenzdaten() throws IOException {
int i=0,z=0,t=0;
if (datum[0][2]<datum[1][2]){
i=datum[0][2];
t=-tage[0]+tage[1];}
else if (datum[0][2]>datum[1][2]){
i=datum[1][2];
t=tage[0]-tage[1]; }
else {
if (tage[0]<tage[1]){
i=datum[0][2];
t=tage[1]-tage[0];}
else{
i=datum[0][2];
t=tage[0]-tage[1];}}
for (int p=datum[0][2]+datum[1][2]-i; i<p; i++){
if (i%400==0){
z=366;
} else if (i%4==0&&i%100!=0){
z=366;
} else {
z=365;
}
differenz=differenz+z;
}
differenz=differenz+t;
System.out.println("\nDie Differenz zuwischen den beiden eingegebenen Daten betraegt "+differenz+" Tage");
}

// Beachte: Mit dem folgenden Abschnitt lässt sich auch der jeweilige Wochentag anzeigen,
// da das bei dieser Art der Aufgabenlösung quasi mit abgefallen ist.
// Um der Aufgabenstellung genüge zu tun, habe ich die enstprechenden Prints "Stillgelegt".

void differenztag() throws IOException {
int i=2,y=0;
String wt = "";
int anzwt[] = new int[3];
int u[] = new int[3];
for (int z=0; z<i; z++){
int p=0;
for (int j=1901; j<datum[z][2]; j++){
if (j%400==0){
y=366;
} else if (j%4==0&&j%100!=0){
y=366;
} else {
y=365;
}
p=p+y;}
u[z]=u[z]+p+tage[z];}
int h=0,p=0;
for (int j=1901; j<tagesdatum[2]; j++){
if (j%400==0){
y=366;
} else if (j%4==0&&j%100!=0){
y=366;
} else {
y=365;
}
p=p+y;
u[2]=p+tage[2];}
for (int z=0; z<3; z++){
if (u[z]%7==0){
wt="Dienstag";
anzwt[z]=u[z]/7*6;
}else if (u[z]%7==6){
wt="Montag";
anzwt[z]=u[z]/7*6+u[z]%7;
}else if (u[z]%7==5){
wt="Sonntag";
anzwt[z]=u[z]/7*6+u[z]%7;
}else if (u[z]%7==4){
wt="Samstag";
anzwt[z]=u[z]/7*6+u[z]%7;
}else if (u[z]%7==3){
wt="Freitag";
anzwt[z]=u[z]/7*6+u[z]%7;
}else if (u[z]%7==2){
wt="Donnerstag";
anzwt[z]=u[z]/7*6+u[z]%7;
}else if (u[z]%7==1){
wt="Mittwoch";
anzwt[z]=u[z]/7*6+u[z]%7;}

//System.out.println("\nDer Wochentag des "+(z+1)+". Datums ist ein "+wt);
//System.out.println("\nDie Anzahl der Werktage ab 1.1.1901 bis zum "+(z+1)+". Datums betraegt "+anzwt[z]);

}
for (int e=0; e<2; e++){
if (anzwt[e]<anzwt[2]){
werktage[e]=anzwt[2]-anzwt[e];}
else {
werktage[e]=anzwt[e]-anzwt[2];}
System.out.println("\nDie Anzahl an Werktagen zwischen dem "+(e+1)+". Datum und heute betraegt "+werktage[e]);}

}

public static void main(String[] args) throws IOException {

Datum a = new Datum();
a.einlesenDatum();
a.tagesdatum();
a.tageberechnen();

Aufgabe b = new Aufgabe();
b.differenzdaten();
b.differenztag();
}
}

Ich weiß nicht schön, aber selten
Der Ergebnis passt jedenfalls....

Danke Chris für Deine Hilfe Ich weiß das zu sehr zu schätzen!
Ich raff zwar null von java aber ich denke ich habe einen schreibfehler gefunden.
Aber ansonsten respekt!