Picproje Elektronik Sitesi

SERBEST BÖLGE => Programlama ve Algoritma => Konuyu başlatan: brlesc - 16 Ekim 2013, 14:19:59

Başlık: julian tarihinden normal tarihe donüşüm ?
Gönderen: brlesc - 16 Ekim 2013, 14:19:59
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.
Başlık: Ynt: julian tarihinden normal tarihe donüşüm ?
Gönderen: brlesc - 16 Ekim 2013, 15:35:07
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..