#!/bin/env perl -w #+ # sex2dec -- convert from sexagesimal to decimal # # Purpose: # Given a sexagesimal value, return decimal equivalent # # Usage: # sex2dec # # Arguments: # value = DD:MM:SS.SS # # Output: # to stdout # # Restrictions: # # Exit values: # 0 = normal completion # 1 = wrong number of arguments # # Example: # #- # Modification history: # 2008-Oct-25 GDW Original version #----------------------------------------------------------------------- my( $usage) = "sex2dec DD:MM:SS.SS"; die "Usage: $usage\n" if scalar(@ARGV) != 1; my( $sex) = shift @ARGV; my( $sign) = ''; my( $dd, $mm, $ss, $dec); if ( $sex =~ m/^([\+\-])?(\d+):(\d\d+):([\d\.]+)$/ ) { $sign = $1; $dd = $2; $mm = $3; $ss = $4; $dec = $dd + $mm/60 + $ss/(60*60); if ( defined($sign) and ($sign eq '-' )){ $dec = -1 * $dec; } print "$dec\n"; } else { die "input must be in format DD:MM:SS.SS\n" }