PDA

View Full Version : مشکل در سورس Android Persian Calendar



ali-star
چهارشنبه 08 مرداد 1393, 18:35 عصر
سلام دوستان

من مدتی هست که دارم روی این سورس کار میکنم:

Android Persian Calendar (http://barnamenevis.org/showthread.php?401729-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF&p=1987307&viewfull=1#post1987307)

و امروز به یه مشکل برخوردم اونم اینکه نمیدونم چطور تاریخ هجری قمری رو یکی ببرم عقب... عید فطر 1 شوال هست ولی اونو 2 شوال مینویسه و آخرین روز ماه رمضان رو 29 نشون میده...

وقتی داشتم اصلاحش میکردم به یه نکنه برخوردم و اون هم در کلاس DateConverter هست وقتی توی این متد:

public static final IslamicDate jdnToIslamic(long jd) {

CivilDate civil = jdnToCivil(jd);
int year = civil.getYear();
int month = civil.getMonth();
int day = civil.getDayOfMonth();

long k = floor(0.6 + (year + (month % 2 == 0 ? month : month - 1) / 12d
+ day / 365f - 1900) * 12.3685);

double mjd;
do {
mjd = visibility(k);
k = k - 1;
} while (mjd > (jd - 0.5));

k = k + 1;
long hm = k - 1048;

year = 1405 + (int) (hm / 12);
month = (int) (hm % 12) + 1;

if (hm != 0 && month <= 0) {
month = month + 12;
year = year - 1;
}

if (year <= 0)
year = year - 1;

day = (int) floor(jd - mjd + 0.5);

return new IslamicDate(year, month, day);
}

day = (int) floor(jd - mjd + 0.5);

رو به:

day = (int) floor(jd - mjd + 1);

تغییر بدم آخرین روز ماه رمضان 30 میشه ولی ماه ذالقعده از 2 شروع میشه.
دوستان چون خیلی روش کارکردم ولی به نتیجه ای نرسیدم اومدم سوال کردم... پس اگه میشه راهنمایی کنید.