Changeset 1465 in Sophya for trunk/SophyaExt/XAstroPack/xastropack.cc
- Timestamp:
- Apr 11, 2001, 12:17:22 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaExt/XAstroPack/xastropack.cc
r1456 r1465 25 25 // (angle + vers l'ouest, - vers l'est) 26 26 27 double True MJDfrMJD(double mjd)27 double TrueJDfrMJD(double mjd) 28 28 { 29 29 return mjd + MJD0; 30 } 31 32 double MJDfrTrueJD(double jd) 33 { 34 return jd - MJD0; 30 35 } 31 36 … … 130 135 } 131 136 132 void H dectoHMS(double hd,int *h,int *mn,double *s)137 void HMSfrHdec(double hd,int *h,int *mn,double *s) 133 138 // INPUT: hd 134 // OUTPUT: h:mn:s 135 // REMARQUE: si hd<0 alors h<0 mais toujours mn,s>=0 139 // OUTPUT: h mn s (h,mn,s >=< 0) 140 // REMARQUE: si hd<0 alors h<0 ET mn<0 ET s<0 141 // EX: 12.51 -> h=12 mn=30 s=10 ; 142 // -12.51 -> h=-12 mn=-30 s=-10 ; 136 143 { 137 144 int sgn=1; … … 145 152 if(*mn<0) *mn = 0; 146 153 if(*mn>=60) {*mn-=60; *h+=1;} 147 *h *= sgn; 148 } 149 150 double HMStoHdec(int h,int mn,double s) 151 // INPUT: h , mn , s 152 // RETURN: h:|mn|:|s| en heures decimales 153 // REMARQUE: si h<0 return -h:mn:s 154 // ERROR: mn<0 ou s<0 n'est pas correct, le programme les remet>0 155 { 156 if(mn<0) { 157 cout<<"HMStoHdec: mn out of range <0 : "<<mn<<" changed to abs()"<<endl; 158 mn *= -1; 159 } 160 if(s<0.) { 161 cout<<"HMStoHdec: s out of range <0 : "<<s<<" changed to abs()"<<endl; 162 s *= -1.; 163 } 164 int sgn=1; if(h<0) {sgn=-1; h*=-1;} 165 return ((double)h + (double)mn/60. + s/3600.)*(double)sgn; 154 *h *= sgn; *mn *= sgn; *s *= (double)sgn; 155 } 156 157 double HdecfrHMS(int h,int mn,double s) 158 // INPUT: h , mn , s (h,mn,s >=< 0) 159 // RETURN: en heures decimales 160 // REMARQUE: pour avoir hd=-12.51 <- h=-12 mn=-30 s=-10 161 { 162 return ((double)h + (double)mn/60. + s/3600.); 166 163 } 167 164 168 165 string ToStringHMS(int h,int mn,double s) 169 // INPUT: h , mn >=0 , s >=0166 // INPUT: h , mn , s (h,mn,s >=< 0) 170 167 // RETURN: string h:mn:s 171 // REMARQUE: si h<0 return -h:mn:s 172 // ERROR: mn<0 ou s<0 est une erreur ! 173 // on prend la valeur absolue mn->|mn| , s->|s| 174 { 175 double hd = HMStoHdec(h,mn,s); // put in range 176 HdectoHMS(hd,&h,&mn,&s); 168 { 169 double hd = HdecfrHMS(h,mn,s); // put in range 170 HMSfrHdec(hd,&h,&mn,&s); 177 171 char str[128]; 178 sprintf(str,"%d:%d:%.3f",h,mn,s); 172 if(hd<0.) 173 sprintf(str,"-%d:%d:%.3f",-h,-mn,-s); 174 else 175 sprintf(str,"%d:%d:%.3f",h,mn,s); 179 176 string dum = str; 180 177 return dum; … … 184 181 { 185 182 int h,mn; double s; 186 H dectoHMS(hd,&h,&mn,&s);183 HMSfrHdec(hd,&h,&mn,&s); 187 184 return ToStringHMS(h,mn,s); 188 185 }
Note:
See TracChangeset
for help on using the changeset viewer.