package Counter;
import java.text.SimpleDateFormat;
import java.util.*;
public class Counter {
private int[] date = new int[6];
final int[] TAGE_DER_MONATE_S = new int[] { 31, 29, 31, 30, 31, 30, 31, 31,
30, 31, 30, 31 };
final int[] TAGE_DER_MONATE = new int[] { 31, 28, 31, 30, 31, 30, 31, 31,
30, 31, 30, 31 };
public Counter(int[] date) {
this.date = date;
}
public int[] gibaktuellesdatum() {
int[] datum = new int[6];
// hier werden nun der reihe nach alle relevanten aktuellen Zeitangaben
// in ein Array datum gespeichert
// dd = Tag
SimpleDateFormat date = new SimpleDateFormat("dd");
datum[0] = Integer.parseInt(date.format(new Date()));
// MM = Monat
date = new SimpleDateFormat("MM");
datum[1] = Integer.parseInt(date.format(new Date()));
// yyyy = Jahr
date = new SimpleDateFormat("yyyy");
datum[2] = Integer.parseInt(date.format(new Date()));
// kk = Stunden (kk wegen 24h, sonst hh, dann aber von 0-11)
date = new SimpleDateFormat("kk");
datum[3] = Integer.parseInt(date.format(new Date()));
// mm = Minunten
date = new SimpleDateFormat("mm");
datum[4] = Integer.parseInt(date.format(new Date()));
// ss = Sekunden
date = new SimpleDateFormat("ss");
datum[5] = Integer.parseInt(date.format(new Date()));
return datum;
}
public int[] wielangenoch() {
int tage = 0;
int[] anz_tage = new int[12];
int[] zeit = new int[6];
int[] aktuell = this.gibaktuellesdatum();
if (zeit[2] % 4 == 0) {
anz_tage = this.TAGE_DER_MONATE_S;
} else {
anz_tage = this.TAGE_DER_MONATE;
}
// ich beginne mit den berechnungen der Sekunden, weil das die kleinste
// Zeiteinheit ist, arbeite mich dann hoch...
// Sekunden
zeit[5] = date[5] - aktuell[5];
if (zeit[5] < 0) {
zeit[3] -= 1;
zeit[5] = this.sekunde_sekunde(date[5], aktuell[5]);
}
// Minute
// hier muss überprüft werden ob die Variable negativ wird, weil dann
// die Zeit anders berechnet wird
zeit[4] += date[4] - aktuell[4];
if (zeit[4] < 0) {
zeit[3] -= 1;
zeit[4] = this.minute_minute(date[4], aktuell[4]);
}
// Stunden
zeit[3] += date[3] - aktuell[3];
if (zeit[3] < 0) {
zeit[0] -= 1;
zeit[3] = this.stunde_stunde(date[3], aktuell[3]);
}
// Tag
zeit[0] += date[0] - aktuell[0];
if (zeit[0] < 0) {
zeit[1] -= 1;
zeit[0] = this.tag_tag(date[0], date[1], date[2], aktuell[0]);
}
// dann mache ich bei den Monaten weiter...
// Monat
zeit[1] += date[1] - aktuell[1];
if (zeit[1] < 0) {
zeit[2] -= 1;
zeit[1] = this
.monat_monat(date[1], date[2], aktuell[1], aktuell[2]);
}
// Jahr
zeit[2] += date[2] - aktuell[2];
return zeit;
}
/*private int wievielterTagImJahr(int tag, int monat, int jahr) {
int anzahl = 0;
int[] anz_tage = new int[12];
if (jahr % 4 == 0) {
anz_tage = this.TAGE_DER_MONATE_S;
} else {
anz_tage = this.TAGE_DER_MONATE;
}
anzahl += tag;
int zaehler = 0;
while (zaehler != monat - 1) {
anzahl += anz_tage[zaehler];
zaehler++;
}
System.out.println(anzahl);
return anzahl;
}
*/
// die mit -1- am ende gekennzeichneten Variablen geben immer das spätere
// Datum an, dass mit der -2- am ende stellt das aktuelle dar
private int tag_tag(int tag1, int monat1, int jahr1, int tag2) {
//System.out.println("tag1 "+tag1+", monat1 "+monat1+" ,jahr1 "+jahr1+" ,tag2 "+tag2);
int anz = 0;
int[] anz_tage1 = this.TAGE_DER_MONATE;
if (jahr1 % 4 == 0) {
anz_tage1 = this.TAGE_DER_MONATE_S;
}
anz = anz_tage1[monat1 - 1] - tag1 + tag2;
// System.out.println(anz);
// System.out.println();
return anz;
}
private int monat_monat(int monat1, int jahr1, int monat2, int jahr2) {
int anz = 0;
return anz;
}
private int stunde_stunde(int stunde1, int stunde2) {
// System.out.println("stunde1 "+stunde1 +" stunde2 " +stunde2);
int anz = 0;
anz = 24 - stunde2 + stunde1;
// System.out.println("stunden "+anz);
// System.out.println();
return anz;
}
private int minute_minute(int minute1, int minute2) {
// System.out.println("min "+minute1 +" min2 " +minute2);
int anz = 0;
anz = 60 - minute2 + minute1;
// System.out.println("min "+anz);
// System.out.println();
return anz;
}
private int sekunde_sekunde(int sekunde1, int sekunde2) {
// System.out.println("sek1 "+sekunde1 +" sek2 " +sekunde2);
int anz = 0;
anz = 60 - sekunde2 + sekunde1;
// System.out.println("sek "+anz);
// System.out.println();
return anz;
}
}