Woche berechen

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo,

ich möchte gerne aus einem Datum die Woche berechnen (um das fett geschriebene geht es),kriege es allerdings einfach nicht hin, ich brauche dringend Hilfe, ich verzweifle bald.

Danke.

public class Datum {
// Variablendeklaration
static int zeile=0;
static int iarray[][]=new int [3][3];
int iTag, iMonat, iJahr, iLfdTag; //
String strwochentag=new String(); //Variable fuer den Wochentag
String strmonat=new String(); //Variable fuer den Monat
String strjahr=new String (); //Variable fuer das Jahr


// hier soll nun die Woche berechnet werden
Datum=new Date(j,m-1,t);
DoDat=donnerstag(Datum);
kwjahr=DoDat.getFullYear();
DoKW1=donnerstag(new Date(kwjahr,0,4));
kw=Math.floor(1.5+(DoDat.getTime()-DoKW1.getTime())/8400000/7)

function donnerstag(datum) {
var Do=new Date();
Do.setTime(datum.getTime() + (3-((datum.getDay()+6) % 7)) * 86400000);
return Do;
}


//Methode zur Brechnung des Wochentages
void berechnenWochentag()
{
int pMonat=iMonat; //Hier bekommt pMonat den Wert von iMonat
int pJahr=iJahr; //pJahr erhaelt den Wert von iJahr
int f;

//Beginn der Berechnung des Wochentages
if (pMonat<3)
{
pMonat=pMonat+10;
pJahr=pJahr-1;
}
else
{
pMonat=pMonat-2;
}

int Jahr1=pJahr/100;
int Jahr2=(pJahr%100);
int h1=(pMonat*13-1)/5;
int h2=Jahr2/4;
int h3=Jahr1/4;
int b=h1+h2+h3;
if (pJahr%100==0) //Wenn Jahreszahl ohne Rest durch 100 teilbar ist
{
//Ja, Korrektur der Jahreszahl, die durch 100 teilbar ist, mit +7
f=(b+7+Jahr2+iTag-Jahr1*2)%7;
}
else
{
//Nein, wie gewohnt berechnen
f=(b+Jahr2+iTag-Jahr1*2)%7;
}

//Zuweisung des Wochentages
switch (f)
{
case 0: strwochentag="Sonntag";
break;
case 1: strwochentag="Montag";
break;
case 2: strwochentag="Dienstag";
break;
case 3: strwochentag="Mittwoch";
break;
case 4: strwochentag="Donnerstag";
break;
case 5: strwochentag="Freitag";
break;
case 6: strwochentag="Samstag";
break;
default: strwochentag="Fehler";
//default haette hier auch case 6 ersetzen koennen
}
//Ausgabe des Wochentages
System.out.println("Der " +iTag+"."+iMonat+"."+iJahr+ " war ein "
+strwochentag);
}


void bestimmenLfdTag4 ()
{
int [] iATag={31,28,31,30,31,30,31,31,30,31,30,31,1};
iLfdTag=0;

switch(iMonat)
{
case 1:iLfdTag=iTag;
break;
case 2:iLfdTag=iATag[0]+iTag;
break;
default:for(int i=0;i<iMonat-1;i++)
{
iLfdTag+=iATag;
}
iLfdTag+=iTag;
}

if (iMonat>=3)
{
if ((iJahr%4==0 && iJahr%100!=0) || iJahr%400==0)
{
iLfdTag+=1; //Schaltjahr
}
}
else;

System.out.println("Das angegebene Datum "+iTag+"."+iMonat+"."+iJahr+
" entspricht dem "+iLfdTag+" Tag");
}
}

Code:
 

The_S

Top Contributor
verwende doch einfach einen GregorianCalendar. Der stellt dir diese (und noch viel mehr) Funktionalitäten zur Verfügung.
 
G

Guest

Gast
Gast hat gesagt.:
Hallo,

ich möchte gerne aus einem Datum die Woche berechnen (um das fett geschriebene geht es),kriege es allerdings einfach nicht hin, ich brauche dringend Hilfe, ich verzweifle bald.

Danke.

Code:
public class Datum {
  // Variablendeklaration
  static int zeile=0;
  static int iarray[][]=new int [3][3];
  int iTag, iMonat, iJahr, iLfdTag; //
  String strwochentag=new String();    //Variable fuer den Wochentag
  String strmonat=new String(); //Variable fuer den Monat
  String strjahr=new String (); //Variable fuer das Jahr
  
 [b] 
  // hier soll nun die Woche berechnet werden
Datum=new Date(j,m-1,t); 
DoDat=donnerstag(Datum);
kwjahr=DoDat.getFullYear();
DoKW1=donnerstag(new Date(kwjahr,0,4)); 
kw=Math.floor(1.5+(DoDat.getTime()-DoKW1.getTime())/8400000/7) 

function donnerstag(datum) { 
  var Do=new Date();
  Do.setTime(datum.getTime() + (3-((datum.getDay()+6) % 7)) * 86400000); 
  return Do;
}[/b]

  //Methode zur Brechnung des Wochentages
  void berechnenWochentag()
  {
    int pMonat=iMonat; //Hier bekommt pMonat den Wert von iMonat
    int pJahr=iJahr;   //pJahr erhaelt den Wert von iJahr
    int f;
    
    //Beginn der Berechnung des Wochentages
    if (pMonat<3)
    {
        pMonat=pMonat+10;
        pJahr=pJahr-1;
    }
    else
    {
        pMonat=pMonat-2;
    }
    
    int Jahr1=pJahr/100;
    int Jahr2=(pJahr%100);
    int h1=(pMonat*13-1)/5;
    int h2=Jahr2/4;
    int h3=Jahr1/4;
    int b=h1+h2+h3;
    if (pJahr%100==0) //Wenn Jahreszahl ohne Rest durch 100 teilbar ist
    {
      //Ja, Korrektur der Jahreszahl, die durch 100 teilbar ist, mit +7
      f=(b+7+Jahr2+iTag-Jahr1*2)%7;
    }
    else
    {
      //Nein, wie gewohnt berechnen
      f=(b+Jahr2+iTag-Jahr1*2)%7;
    }

    //Zuweisung des Wochentages
    switch (f)
    {
    case 0: strwochentag="Sonntag";
            break;
    case 1: strwochentag="Montag";
            break;
    case 2: strwochentag="Dienstag";
            break;
    case 3: strwochentag="Mittwoch";
            break;
    case 4: strwochentag="Donnerstag";
            break;
    case 5: strwochentag="Freitag";
            break;
    case 6: strwochentag="Samstag";
            break;
    default: strwochentag="Fehler";
    //default haette hier auch case 6 ersetzen koennen
    }
    //Ausgabe des Wochentages
    System.out.println("Der " +iTag+"."+iMonat+"."+iJahr+ " war ein "
    +strwochentag);
  }

  
  void bestimmenLfdTag4 ()
  {
    int [] iATag={31,28,31,30,31,30,31,31,30,31,30,31,1};
    iLfdTag=0;
    
    switch(iMonat)
    {
      case 1:iLfdTag=iTag;
      break;
      case 2:iLfdTag=iATag[0]+iTag;
      break;
      default:for(int i=0;i<iMonat-1;i++)
              {
                iLfdTag+=iATag[i];
              }
              iLfdTag+=iTag;
    }
    
    if (iMonat>=3)
    {
      if ((iJahr%4==0 && iJahr%100!=0) || iJahr%400==0)
      {
        iLfdTag+=1;    //Schaltjahr
      }
    }
    else;
    
    System.out.println("Das angegebene Datum "+iTag+"."+iMonat+"."+iJahr+
                       " entspricht dem "+iLfdTag+" Tag");
  }
}
 
G

Gast

Gast
Hobbit_Im_Blutrausch hat gesagt.:
verwende doch einfach einen GregorianCalendar. Der stellt dir diese (und noch viel mehr) Funktionalitäten zur Verfügung.

Und wie könnte ich den dann darstellen, bin noch blutiger Anfänger und kann es einfach noch nicht so richtig.

Danke
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben