Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

Monday January 20, 2003
02:34 AM

My ditigal almanac

[ #10082 ]

Since I do so much farming now that I live in the midwest, I needed to add sunrise and sunset times to my weather script (and maybe Andy Lester can use this to plan his Extreme Mowing). I still want to add tide information for places next to water, and a three day weather forecast would be nice (although I want to grab that from somewhere that I am allowed to get it---I am not so sure about the Perl module that scrapes weather.com). If I get really fancy I can add the current terrorism threat level, ozone alerts, snow days, and presence of Randal Schwartz in that city.

And, as a globetrotting professional <something>, I would like to have a handy-dandy almanac for places like Kabul, the Sinai, and other places many people learn about on CNN.

#!/usr/bin/perl
# $Id$
 
use Astro::Sunrise;
use Geo::WeatherNOAA;
 
my @date = localtime;
 
$date[5] += 1900;
$date[4] += 1;
 
while( <DATA> )
    {
    next unless m/\|/;
    chomp;
 
    my( $city, $state, $name, $lat, $long, $tz ) = split /\|/;
 
    $name ||= $city;
 
    my $response = uc( $name ) . "\n";
 
    $response .= print_current( $city, $state, '', 'get');
    $response =~ s/&deg;//g;
    $response .= "\n" unless substr( $response, -1, 1 ) eq "\n";
 
    my( $rise, $set ) = sunrise( @date[5,4,3], $long, $lat, $tz, $date[8] );
 
    print $response, "Sunrise: $rise  Sunset: $set\n", "-" x 73, "\n";
    }
 
__DATA__
meigs|il|Chicago|41.9|-87.9|-6
providence|ri||41.8|-71.5|-5
new york city|ny||40.8|-74|-5
monterey|ca||36.5|-121.9|-8
CINC-COVINGTON|oh|Cincinnati| 39.2|-84.5|-5
atlanta|ga||33.6|-84.5|-5
salt lake city|ut||40.8|-112|-7
dfw airport|tx|Dallas|32.9|-96.9|-6