Astro
    
    
  
  
  
view release on metacpan or search on metacpan
Astro/Time.pm view on Meta::CPAN
    $dayno = cal2dayno($day, $month, $year);
    print "It's a leap year!\n" if (leap($year));
    $lmst = mjd2lst($mjd, $longitude, $dUT1);
    $turns = str2turn($string, 'H');
    $str = turn2str($turn, 'D', $sig);
=head1 DESCRIPTION
Astro::Time contains an assorted set Perl routines for time based
conversions, such as conversion between calendar dates and Modified
Julian day and conversion of UT to local sidereal time. Include are
routines for conversion between numerical and string representation of
angles.
=head1 AUTHOR
Chris Phillips  Chris.Phillips@csiro.au
=head1 FUNCTIONS
Astro/Time.pm view on Meta::CPAN
  } else {
    ($day, $month) = dayno2cal($dayno, $year);
    return($day, $month, $year);
  }
}
=item B<mjd2cal>
  ($day, $month, $year, $ut) = mjd2cal($mjd);
 Converts a modified Julian day number into calendar date (universal 
 time). (based on the slalib routine sla_djcl).
    $mjd     Modified Julian day (JD-2400000.5)
    $day     Day of the month.
    $month   Month of the year.
    $year    Year
    $ut      UT day fraction
=cut
# VERIFIED
Astro/Time.pm view on Meta::CPAN
  my $month =(($temp2/306+2)%12)+1;
  my $day = ($temp2%306)/10+1;
  return($day, $month, $year, $ut);
}
=item B<cal2mjd>
  $mjd = cal2mjd($day, $month, $year, $ut);
 Converts a calendar date (universal time) into modified Julian day 
 number.
    $day     Day of the month.
    $month   Month of the year.
    $year    Year
    $ut      UT dayfraction
    $mjd     Modified Julian day (JD-2400000.5)
=cut
# Verified
Astro/Time.pm view on Meta::CPAN
  }
  return $lst;
}
=item B<cal2lst>
  $lst = cal2lst($day, $month, $year, $ut, $longitude);
  $lmst = cal2lst($day, $month, $year, $ut, $longitude, $dUT1);
  $ltst = cal2lst($day, $month, $year, $ut, $longitude, $dUT1, $eqenx);
 Wrapper to mjd2lst using calendar date rather than mjd
=cut
sub cal2lst($$$$$;$$) {
  my ($day, $month, $year, $ut, $longitude, $dUT1, $eqenx) = @_;
  my $mjd = cal2mjd($day, $month, $year, $ut);
  return undef if (!defined $mjd);
  return mjd2lst($mjd, $longitude, $dUT1, $eqenx);
}
=item B<dayno2lst>
  $lst = dayno2lst($dayno, $year, $ut, $longitude);
  $lmst = dayno2lst($dayno, $year, $ut, $longitude, $dUT1);
  $ltst = dayno2lst($dayno, $year, $ut, $longitude, $dUT1, $eqenx);
 Wrapper to mjd2lst using calendar date rather than mjd
=cut
sub dayno2lst($$$$;$$) {
  my ($dayno, $year, $ut, $longitude, $dUT1, $eqenx) = @_;
  my $mjd = dayno2mjd($dayno, $year, $ut);
  return undef if (!defined $mjd);
  return mjd2lst($mjd, $longitude,  $dUT1, $eqenx);
}
Astro::	- Assorted astronomical routines
Astro::Time, Astro::Coord and Astro::Misc provide a collection of useful
astronomical routines written entirely in Perl (so no hassling about
installing external libraries is required).
The routines provided include various time conversions (dayno to day/month,
local sidereal time, calendar to Modified Julian day) and coordinate
transformations (J2000 to B1950, B1950 to Galactic, Az,El to Ha,Dec),
string parsing (12:00:00 -> 0.5) as well as a number of astronomical tools
(eg observed Galactic velocity to kinematic distance).
These routines should be used at your own risk! Most should give
reasonable accurate results, but spot checks against your favorite
program are recommenced. The B1950/J2000/Galactic coordinate routines
are based on SLALIB routines and agree very closely.
Please let me know of any bugs you find or if you have other routines you
( run in 0.538 second using v1.01-cache-2.11-cpan-c333fce770f )