Ignore:
Timestamp:
Apr 11, 2001, 12:17:22 PM (24 years ago)
Author:
cmv
Message:

petits bugs cmv 11/4/01

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaExt/XAstroPack/xastropack.cc

    r1456 r1465  
    2525//               (angle + vers l'ouest, - vers l'est)
    2626
    27 double TrueMJDfrMJD(double mjd)
     27double TrueJDfrMJD(double mjd)
    2828{
    2929  return mjd + MJD0;
     30}
     31
     32double MJDfrTrueJD(double jd)
     33{
     34  return jd - MJD0;
    3035}
    3136
     
    130135}
    131136
    132 void HdectoHMS(double hd,int *h,int *mn,double *s)
     137void HMSfrHdec(double hd,int *h,int *mn,double *s)
    133138// 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 ;
    136143{
    137144 int sgn=1;
     
    145152 if(*mn<0) *mn = 0;
    146153 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
     157double 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.);
    166163}
    167164
    168165string ToStringHMS(int h,int mn,double s)
    169 // INPUT: h , mn>=0 , s >=0
     166// INPUT: h , mn , s   (h,mn,s >=< 0)
    170167// 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);
    177171 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);
    179176 string dum = str;
    180177 return dum;
     
    184181{
    185182 int h,mn; double s;
    186  HdectoHMS(hd,&h,&mn,&s);
     183 HMSfrHdec(hd,&h,&mn,&s);
    187184 return ToStringHMS(h,mn,s);
    188185}
Note: See TracChangeset for help on using the changeset viewer.