private void recalculate(AZeit zeit, ZeitPunktResult r)
	{
		AZeit gesamtZeit=startZeit.vonNach(zeit);;
		char kontoVeraenderungPrefix;
		AZeit kontoveraenderung;
		AZeit restZeit; 
		Config.ZeitAbschnitt[] a = Config.getAbschnitte();
		AZeit produktivZeit=new Zeit(0);
		AZeit pausenZeit=new Zeit(0);
		Zeit abschnittEnde=new Zeit(0);
		Zeit abschnittStart=new Zeit(0);
		for(int i=0;i<a.length;i++)
		{
			abschnittEnde=abschnittStart.add(a[i].dauer);
			if(gesamtZeit.compareTo(abschnittEnde)>0)
			{
				//Der aktuelle Abschnitt ist bereits vollendet
				if(a[i].arbeit)
					produktivZeit=produktivZeit.add(a[i].dauer);
				else
					pausenZeit=pausenZeit.add(a[i].dauer);
			}
			else 
			{
				//Der aktuelle Abschnitt ist nicht vollendet
				//Wir fuegen die zeit, die wir bereits in diesem abschnitt sind hinzu.
				if(a[i].arbeit)
					produktivZeit=produktivZeit.add(gesamtZeit.sub(abschnittStart));
				else
					pausenZeit=pausenZeit.add(gesamtZeit.sub(abschnittStart));
				//und beenden die Schleife
				break;
			}
			abschnittStart=abschnittEnde;
		}
		
		if (abwesenheitZeit.laenger(pausenZeit)) {
			AZeit abwesenheitAbzug = abwesenheitZeit.sub(pausenZeit);
			if (produktivZeit.laenger(abwesenheitAbzug)) {
				produktivZeit = produktivZeit.sub(abwesenheitAbzug);
			} else {
				produktivZeit = new Zeit(0,0);
			}
		}
		
		if(produktivZeit.compareTo(Config.minProduktivForPlus)<=0)
		{
			kontoVeraenderungPrefix='-';
			kontoveraenderung=Config.minProduktivForPlus.sub(produktivZeit);
		}
		else
		{
			kontoVeraenderungPrefix='+';
			kontoveraenderung=produktivZeit.sub(Config.minProduktivForPlus);
		}
		if(gesamtZeit.compareTo(Config.minGesamtZeitForPlus) <= 0) { 
			restZeit = Config.minGesamtZeitForPlus.sub(gesamtZeit);
		} else {
			restZeit = new Zeit(0);
		}
		
		r.jUhrzeit.setText(startZeit.toString()+" - "+hoverZeit.toString() + 
				((hoverZeit.compareTo(this.uhr) == 0) ? "" : " (" + diffString(uhr, hoverZeit) + ")"));
		r.jGesamtZeit.setText(gesamtZeit.getNormalAnd100());
		r.jProduktivZeit.setText(produktivZeit.getNormalAnd100());
		r.jPausenZeit.setText(pausenZeit.getNormalAnd100());
		r.jKontoVeraenderung.setText(kontoveraenderung.getNormalAnd100(""+kontoVeraenderungPrefix));
		r.jRestZeit.setText(restZeit.getNormalAnd100());
	}