#!@DASPERL -w
# +-======-+ 
#  Copyright (c) 2003-2007 United States Government as represented by 
#  the Admistrator of the National Aeronautics and Space Administration.  
#  All Rights Reserved.
#  
#  THIS OPEN  SOURCE  AGREEMENT  ("AGREEMENT") DEFINES  THE  RIGHTS  OF USE,
#  REPRODUCTION,  DISTRIBUTION,  MODIFICATION AND REDISTRIBUTION OF CERTAIN 
#  COMPUTER SOFTWARE ORIGINALLY RELEASED BY THE UNITED STATES GOVERNMENT AS 
#  REPRESENTED BY THE GOVERNMENT AGENCY LISTED BELOW ("GOVERNMENT AGENCY").  
#  THE UNITED STATES GOVERNMENT, AS REPRESENTED BY GOVERNMENT AGENCY, IS AN 
#  INTENDED  THIRD-PARTY  BENEFICIARY  OF  ALL  SUBSEQUENT DISTRIBUTIONS OR 
#  REDISTRIBUTIONS  OF THE  SUBJECT  SOFTWARE.  ANYONE WHO USES, REPRODUCES, 
#  DISTRIBUTES, MODIFIES  OR REDISTRIBUTES THE SUBJECT SOFTWARE, AS DEFINED 
#  HEREIN, OR ANY PART THEREOF,  IS,  BY THAT ACTION, ACCEPTING IN FULL THE 
#  RESPONSIBILITIES AND OBLIGATIONS CONTAINED IN THIS AGREEMENT.
#  
#  Government Agency: National Aeronautics and Space Administration
#  Government Agency Original Software Designation: GSC-15354-1
#  Government Agency Original Software Title:  GEOS-5 GCM Modeling Software
#  User Registration Requested.  Please Visit http://opensource.gsfc.nasa.gov
#  Government Agency Point of Contact for Original Software:  
#  			Dale Hithon, SRA Assistant, (301) 286-2691
#  
# +-======-+ 
###########################################################################
#
#  Name: fndate.pl
#
#  Purpose - This script extracts the date and time values from a filename.
#
#  Notes:
#  The filename must contain a date/time value in one of the following
#  formats:
#  
#    - yyyymmdd_hh[Zz]
#    - yyyymmdd_hhmm[Zz]
#    - yyyymmdd_hhmmss[Zz]
#
#  REVISION HISTORY
#  03May2006   Stassi   Initial version of code
#
###########################################################################
use strict;
use File::Basename;

my ($fname,$ymd,$hms);
my $scriptname = basename($0);

unless (@ARGV == 1) { &usage() };
$fname = $ARGV[0];

if ( $fname =~ /.*(\d{8})_(\d{2})[Zz].*/ ) {
    $ymd = $1;
    $hms = $2."0000";
    print "$ymd $hms\n";

} elsif ( $fname =~ /.*(\d{8})_(\d{4})[Zz].*/ ) {
    $ymd = $1;
    $hms = $2."00";
    print "$ymd $hms\n";

} elsif ( $fname =~ /.*(\d{8})_(\d{6})[Zz].*/ ) {
    $ymd = $1;
    $hms = $2;
    print "$ymd $hms\n";

} else {
    die "filename does not contain properly formatted date: \"$fname\"";
}

#=======================================================================
# name - usage
# purpose - print usage information to standard output
#=======================================================================
sub usage {
    die << "EOF";

===============================================
usage: $scriptname <filename>

prints to standard output:

  yyyymmdd hh0000 ... if filename = \*yyyymmdd_hh[Zz]\*

  yyyymmdd hhmm00 ... if filename = \*yyyymmdd_hhmm[Zz]\*

  yyyymmdd hhmmss ... if filename = \*yyyymmdd_hhmmss[Zz]\*

===============================================


EOF

}
