www.webdeveloper.com
Results 1 to 6 of 6

Thread: Yesterday's Date

  1. #1
    Join Date
    Aug 2004
    Posts
    46

    Yesterday's Date

    I am looking to get yesterday's date in perl and it is proving unbelievably problematic. I need it to get a log file by name which I then have to parse. The parsing is fine, the date however has me driven around the bend. Any help will be great. I just need the date not the time.

  2. #2
    Join Date
    Aug 2004
    Posts
    46
    Sorry here is my code so far, I have the date but I need to format it as ddmmyy. (eg the file is named ex040404.log.) I just know this is something simple.


    ( $yy, $mm, $dd ) = scalar localtime( ( time() - ( 24 * 60 *60 ) ) );

    print "Date : ","$dd $mm $yy.\n\n";

  3. #3
    Join Date
    Aug 2003
    Location
    In my house
    Posts
    4,004
    I don't know how efficient this is, but it does work.
    Code:
    my ( $sec, $min, $hour, $day, $month, $year ) = localtime( time - (60 * 60 * 24) );
    $year += 1900;
    $month += 1;
    chomp( $day, $month, $year );
    print "The date is: ", $day, $month, $year, ".";
    The $year += 1900 part is because the value of $year is actually the number of years since 1900 (so we need to add 1900 to it to get the correct year). The $month += 1 part is because the range returned for the month is 0..11, with 0 being January and 11 December (so you have to add 1 to it to make it accurate). The chomp( $day, $month, $year ); part is because, for some reason, the values seem to have superfluous whitespace on either side.
    Thousand different paths
    So many sterile ends
    I chose the Devil's path

    Never shall the sun kiss my face
    And caress me with it's burning light
    For I dwell in the shadows
    And sleep side by side with death

  4. #4
    Join Date
    Dec 2002
    Location
    Pleasanton, CA
    Posts
    2,132
    Code:
    my @timeAry = localtime(time - (60*60*24));
    my $filename = 'ex' . sprintf("\%02u",($today[3]))
                        . sprintf("\%02u",($today[4]+1))
                        . sprintf("\%02u",($today[5]-100)) . '.log';
    @timeAry[3] contains 1..31, so format to 01..31
    @timeAry[4] contains 0..11, so add 1 and format to 01..12
    @timeAry[5] contains 104..10n, so subrtact 100 and format 04..0n

    Filename will now be 'exddmmyy.log'

    EDIT: Added missing ')'
    Last edited by Nedals; 10-29-2004 at 12:18 PM.

  5. #5
    Join Date
    Nov 2002
    Location
    Baltimore, Maryland
    Posts
    12,270
    One might also use the Class::Date module.
    “The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect.”
    —Tim Berners-Lee, W3C Director and inventor of the World Wide Web

  6. #6
    Join Date
    Aug 2004
    Posts
    46
    thank you.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles