#!/usr/bin/perl use v5.030; use warnings; use Astro::Coords; use Astro::MoonPhase; use DateTime; use DateTime::Format::ISO8601; use Log::Log4perl; my $file = '/home/hogan/Documents/hogan/logs/3.log4perl.txt'; unlink $file or warn "Could not unlink $file: $!"; my $log_conf4 = "/home/hogan/Documents/hogan/logs/conf_files/3.conf"; Log::Log4perl::init($log_conf4); #info my $logger = Log::Log4perl->get_logger(); ## time program my $now = DateTime->now( time_zone => 'UTC' ); $logger->info("$0 executed at $now"); # or, create a DateTime object from an ISO timestring my $isostr = '2021-10-09T11:13:57'; # jd 2459496.96802 my $dt = DateTime::Format::ISO8601->parse_datetime($isostr); my @phases = phasehunt($dt); $logger->info("@phases"); my $start_epoch = $phases[0]; my $end_epoch = $phases[4]; my $diff = $end_epoch - $start_epoch; my $hard_bottom = int($start_epoch); $logger->info("integer bottom is $hard_bottom"); $logger->info( "lunation is " . $diff / ( 24 * 60 * 60 ) . " days" ); $logger->info( "degrees covered per day is " . 360 / ( $diff / ( 24 * 60 * 60 ) ) . " degrees" ); ## end prelims for moonphase ## prelims for planets my $traveler1 = Astro::Coords->new( planet => 'Moon' ); my $traveler2 = Astro::Coords->new( planet => 'Venus' ); my $traveler3 = Astro::Coords->new( planet => 'Jupiter' ); my $moon_ra = 4.15; # values make initial while condition true my $venus_ra = 4.2; # values make initial while condition true my $jup_ra = 7; # values make initial while condition true while ( $moon_ra < $venus_ra ) { ## moon $traveler1->datetime($dt); $moon_ra = $traveler1->ra( format => q/deg/ ); ## venus $traveler2->datetime($dt); $venus_ra = $traveler2->ra( format => q/deg/ ); my $random = rand(); if ( $random > .99 ) { $logger->info("dt is $dt"); $logger->info("Moon ra is $moon_ra"); $logger->info("venus ra is $venus_ra"); } ## add a second to what $dt currently holds $dt->add( seconds => 1 ); } my $et = $dt->clone->subtract( seconds => 1 ); my $et_julian = $et->jd; $logger->info("dt is $dt"); $logger->info("et is $et"); $logger->info("Moon ra is $moon_ra"); $logger->info("venus ra is $venus_ra"); $logger->info("Julian equality is $et_julian"); my $later = DateTime->now( time_zone => 'UTC' ); my $seconds_dur = $later->subtract_datetime_absolute($now); $logger->info("Program duration is $seconds_dur seconds"); __END__