double yr = Convert.ToDouble(godina);
double mn = Convert.ToDouble(mesec);
double dy = Convert.ToDouble(datumUmesecu);
double y = 0;
double m = 0;
double b = 0;
double jd = 0;
if (mn > 2)
{
y = yr;
m = mn;
}
else
{
y = yr - 1;
m = mn + 12;
}
double date0 = dy + 31 * (mn + 12 * yr);
double date1 = 4 + 31 * (10 + 12 * 1582);
double date2 = 15 + 31 * (10 + 12 * 1582);
if (date0 < date1)
{
b = -2;
}
else
{
b = y / 400 - y / 100;
}
if ( y > 0)
{
jd = 365.25 * y + 30.6001 * (m + 1) + b + 1720996.5 + dy;
}
else
{
jd = 365.25 * y - 0.75 + 30.6001 * (m + 1) + b + 1720996.5 + dy;
}
double mjd = jd - 2400000.5;
double jd1 = 0;
yr = 1980;
mn = 1;
dy = 6;
if (mn > 2)
{
y = yr;
m = mn;
}
else
{
y = yr - 1;
m = mn + 12;
}
date0 = dy + 31 * (mn + 12 * yr);
date1 = 4 + 31 * (10 + 12 * 1582);
date2 = 15 + 31 * (10 + 12 * 1582);
if (date0 < date1)
{
b = -2;
}
else
{
b = y / 400 - y / 100;
}
if (y > 0)
{
jd1 = 365.25 * y + 30.6001 * (m + 1) + b + 1720996.5 + dy;
}
else
{
jd1 = 365.25 * y - 0.75 + 30.6001 * (m + 1) + b + 1720996.5 + dy;
}
double jdgps = jd1 - 2400000.5;
double gpsWeek = (jd - jd1) / 7;
double sow = (jd - (jd1 + Convert.ToInt32(gpsWeek) * 7)) * 3600 * 24;