julian tarihinden normal tarihe donüşüm ?

Başlatan brlesc, 16 Ekim 2013, 14:19:59

brlesc

herkese  iyi bayramlar..
Julian date formullerini kullanarak normal bir tarihi julian tarihine donusturebiliyorum fakat bir julian tarihini normal tarih formatina donusturecek duzgun bir formul bulamadım bu konuda calisan bir formul verebilirmisiniz yada bir kod parcası olabilir. Tesekkur ederim.
edeb ya hu...

brlesc

Yanıtı budm galiba arkadaslar gregorian takvim miladi takvimmiş :)

jdn_t gregorian_to_jd(year_t year, month_t month, day_t day, hour_t hour, minute_t     minute, second_t second)
{ 
//implement the conversion from gregorian to jdn
long long a = (14 - month)/12;
long long y = year + 4800 - a;
long long m = month + 12*a - 3;

jdn_t jdn = day + (153 * m + 2)/5 + 365*y + y/4 - y/100 + y/400 - 32045 - 0.5;
jdnt_t jdnt = jdn + (hour-12)/24 + minute/1440 + second/86400;
}

void jdn_to_gregorianTime(jdnt_t jdnt,year_t & year, month_t & month, day_t & day,   hour_t & hour, minute_t & minute, second_t & second)
{
    long long j = static_cast<long long>(jdnt + 0.5) + 32044;
    long long g = j / 146097;
    long long dg = j % 146097;
    long long c = (dg / 36524 + 1) * 3 / 4;
    long long dc = dg - c * 36524;
    long long b = dc / 1461;
    long long db = dc % 1461;
    long long a = (db / 365 + 1) *3 / 4;
    long long da = db - a * 365;
    long long y = g * 400 + c * 100 + b * 4 + a;
    long long m = (da * 5 + 308) / 153 - 2;
    long long d = da - (m+4) * 153 / 5 + 122;
    year = y - 4800 + (m + 2) / 12;
    month = (m + 2) % 12 + 1;
    day = static_cast<day_t>(d + 1);
}


belki isinize yarayabilir..
edeb ya hu...