33static DayTime Sidereal::calculateByGPS (TinyGPSPlus* gps){
44 DayTime timeUTC = DayTime (gps->time .hour (), gps->time .minute (), gps->time .second ());
55 int deltaJd = calculateDeltaJd (gps->date .year (), gps->date .month (), gps->date .day ());
6- float deltaJ = ( float ) deltaJd + ((timeUTC.getTotalHours ()) / 24.0 );
7- return DayTime ((float ) (calculateTheta (deltaJ, ( float ) gps->location .lng (), timeUTC.getTotalHours ()) / 15.0 ));
6+ double deltaJ = deltaJd + ((timeUTC.getTotalHours ()) / 24.0 );
7+ return DayTime ((float )(calculateTheta (deltaJ, gps->location .lng (), timeUTC.getTotalHours ()) / 15.0 ));
88}
99
10- static const float Sidereal::calculateTheta (float deltaJ, float longitude, float timeUTC){
10+ static const double Sidereal::calculateTheta (double deltaJ, double longitude, float timeUTC){
1111 float theta = C1;
1212 theta += C2 * deltaJ;
1313 theta += C3 * timeUTC;
@@ -20,10 +20,14 @@ static const int Sidereal::calculateDeltaJd(int year, int month, int day){
2020
2121 // Calculating days without leapdays
2222 long int deltaJd = (year - REFERENCE_JEAR) * 365 + day;
23- for (int i=0 ; i < month - 1 ; i++){deltaJd += daysInMonth[i];}
23+ for (int i=0 ; i < month - 1 ; i++){
24+ deltaJd += daysInMonth[i];
25+ }
2426
2527 // Add leapdays
26- if (month <= 2 ){year--;}
28+ if (month <= 2 ){
29+ year--;
30+ }
2731 deltaJd += (year / 4 - year / 100 + year / 400 );
2832 deltaJd -= (REFERENCE_JEAR / 4 - REFERENCE_JEAR / 100 + REFERENCE_JEAR / 400 );
2933 return deltaJd;
0 commit comments