www.ahlu-sunnah.de Geschrieben 11. Februar 2008 Teilen Geschrieben 11. Februar 2008 Hallo Leut! Ich glaub das Thema hatte ich schon mal erstellt hier, aber durch nutzen der Suchfunktion hab ich es nicht gefunden. Dann eben nochmal. Wie ihr wisst bastle ich schon lange an einen Programm das den gregorianischen Kalender in den islamischen konvertiert. Dazu muss man erstmal den gregorianischen Kalender in den Julianischen umrechnen. Hier mein Code: import javax.swing.*; public class Umrechnung { public static void main (String[]args) { int GD = Integer.parseInt(JOptionPane.showInputDialog(null,"Geben Sie einen gergorianisches Tag ein")); int GM = Integer.parseInt(JOptionPane.showInputDialog(null,"Geben Sie einen gregorianischen Monat ein")); int GJ = Integer.parseInt(JOptionPane.showInputDialog(null,"Geben Sie ein gregorianischen Jahr ein")); double s = (int)(GJ/100); double s1 = GJ % 100; double s2 = (int)(1-(s1/100)); double p = (int)(GJ/400); double p1 = GJ %400; double p2 = (int)(1 - (p1 / 400)); double q = (int)(GJ / 4); double b = GJ % 4; double q2 = (int)(1 - (b / 4)); double r = s %4; double r1 = 3 * p + r - 2; double r2 = q2 + p2 - s2; double Ausgleich = 0; { if(GM==1) { Ausgleich =0; } if(GM==2) { Ausgleich =31; } if(GM==3) { Ausgleich =59; if (r2==1){ Ausgleich =60; } } if(GM==4) { Ausgleich =90; if (r2==1){ Ausgleich =91; } } if(GM==5) { Ausgleich =120; if (r2==1){ Ausgleich =121; } } if(GM==6) { Ausgleich =151; if (r2==1){ Ausgleich =152; } } if(GM==7) { Ausgleich =181; if (r2==1){ Ausgleich =182; } } if(GM==8) { Ausgleich =212; if (r2==1){ Ausgleich =213; } } if(GM==9) { Ausgleich =243; if (r2==1){ Ausgleich =244; } } if(GM==10) { Ausgleich =273; if (r2==1){ Ausgleich =274; } } if(GM==11) { Ausgleich =304; if (r2==1){ Ausgleich =305; } } if(GM==12) { Ausgleich =334; if (r2==1){ Ausgleich =335; } } double J = (int)(1721058 + 1461 * q + 365 * b - r2 - r1 + GD + Ausgleich); JOptionPane.showMessageDialog(null,J); Bis dahin rechnet man den Gregorianischen Kalender in den islamischen um. Ein Kollege der nur C beherrscht hat mir dazu eine Erweiterung geschrieben (in C natürlich, das ich nicht kann). Hier ist sein Code: /***************************************************/ /* Islamic Tabular Calendar Date */ /* Calculate month, day, and year from Julian date */ /* Day 1 starts at Saturday 1800, sunset */ /* return 1, if valid, 0 otherwise */ /***************************************************/ //const long islamicMuharram = 1948440; // civil calendar epoch const long islamicMuharram = 1948439; // astronomical calendar epoch int DllExport JD2DMY_Islamic ( double J, int &day, int &month, long &year, double &ut, int &DOW ) { ut = frac(J+0.5); J = J-ut+0.5; ut *= 24.; if (J<islamicMuharram) return(0); // invalid date long L = (long)(J-islamicMuharram+10632); long N = (long)((L-1)/10631); L = L-10631*N+354; long j = int((10985-L)/5316)*int((50*L)/17719)+int(L/5670)*int((43*L)/15238); L = L-int((30-j)/15)*int((17719*j)/50)-int(j/16)*int((15238*j)/43)+29; month = int((24*L)/709); day = L-int((709*month)/24); year = 30*N+j-30; if (year<1) return(0); // invalid date return(1); } /***************************************************/ /* Islamic Tabular Calendar Date */ /* Calculate Julian date from month, day, and year */ /* Day starts at sunset of J */ /* return 1, if valid, 0 otherwise */ /***************************************************/ int DllExport DMY2JD_Islamic ( int day, int month, long year, double &J ) { if (year<1) return(0); // invalid date J = int((11*year+3)/30)+354*year+30*month-int((month-1)/2)+day+islamicMuharram-385; return(1); } static const char* monthsIslamic[] = { "", "Muharram", "Safar", "Rabi'a I", "Rabi'a II", "Jumada I", "Jumada II", "Rajab", "Sha'ban", "Ramadan", "Shawwal", "Dhu al-Q'adah", "Dhu al-Hijjah"}; const DllExport char* MonthIslamic ( int month ) { if (month<1 || month>12) return(""); return monthsIslamic[month]; } Kann jemand den Code "javasieren"? Vielen Dank Mit freundlichen Grüßen Ahlu-Sunnah Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
www.ahlu-sunnah.de Geschrieben 11. Februar 2008 Autor Teilen Geschrieben 11. Februar 2008 Berichtigung eines Fehlers! Bis dahin rechnet man den Gregorianischen Kalender in den Julianischen um. Ein Kollege der nur C beherrscht hat mir dazu eine Erweiterung geschrieben (in C natürlich, das ich nicht kann). Hier ist sein Code: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mohadipe Geschrieben 13. Februar 2008 Teilen Geschrieben 13. Februar 2008 *hust* hast du dir den C-Code überhaupt mal durchgelesen?!? Wenn ja (was ich nicht glaube) lies nochmal. Was fällt dir auf? Richtig kaum Unterschiede. Dein einziges Problem könnten Zeiger darstellen. Aber das soltest du hinbekommen glaub ich *ich geh zum Arzt hust* :old Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
www.ahlu-sunnah.de Geschrieben 14. Februar 2008 Autor Teilen Geschrieben 14. Februar 2008 *hust* hast du dir den C-Code überhaupt mal durchgelesen?!? Wenn ja (was ich nicht glaube) lies nochmal. Was fällt dir auf? Richtig kaum Unterschiede. Dein einziges Problem könnten Zeiger darstellen. Aber das soltest du hinbekommen glaub ich *ich geh zum Arzt hust* :old Morgen, du hast Recht . Ich habe es geschafft, den Konvertierer zu schreiben. So schwer war es gar nicht::bimei Mit freundlichen Grüßen Ahlu-Sunnah Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ksg9-sebastian Geschrieben 14. Februar 2008 Teilen Geschrieben 14. Februar 2008 Oh gott, wie kann man so faul sein und den Code nichtmal anschauen bevor man in das nächstbeste Forum "trollt" und es auch noch schafft innerhalb von kürzester Zeit zwei identische Threads zu erstellen. Die Menschheit verdummt doch von Tag zu Tag... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.