文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>perl计算之前某个日期到现在一共多少天

perl计算之前某个日期到现在一共多少天

时间:2010-11-18  来源:heidern

这个脚本能够显示从2010年9月20日到今天之前一共会有哪些天,大家可以借鉴一下用perl处理unix时间戳的技巧~

 

#!/usr/local/perl5.12.2/bin/perl

#Author:

# Hyper Lau <[email protected]>

#Website:

# http://heidern.cublog.cn

#File:

# unix_time.pl

#Create Date:

# Wed 17 Nov 2010 04:42:07 PM CST

use strict;
use warnings;
use Time::Local;
$|=1;
my $old_date_Y='2010';
my $old_date_M='09';
my $old_date_D='20';
# when you want to convert time to unixstamp,don't add 1 to month!!

my $old_date_unix=timelocal(0,0,0,$old_date_D,$old_date_M-1,$old_date_Y);
my $old_date=$old_date_Y.$old_date_M.$old_date_D;
my ($now_date_Y,$now_date_M,$now_date_D)=get_now_date();
my $now_date=$now_date_Y.$now_date_M.$now_date_D;
my $now_date_unix=get_now_date_unix();
while ($old_date_unix <= $now_date_unix) {
    print "now date is $now_date , unixstamp is $now_date_unix\n";
    print "old date is $old_date , unixstamp is $old_date_unix\n";
    print "processing ".get_time($old_date_unix)." data...\n";
    <STDIN>;
    print "process ok! \n";
    $old_date_unix+=86400;
}
print "===========ALL PROCESSED!!===========\n";

sub get_time {
# in unixstamp

# out "YYYY-MM-DD HH:mm:SS"

    my ($time)=@_;
    $time=time until (defined($time));
    my @time_format = (localtime($time))[5,4,3,2,1,0];
    $time_format[0] += 1900;
    $time_format[1] += 1;
    foreach $_(@time_format) {
        $_ = sprintf("%02d", $_);
    }
    my $cur_time = "$time_format[0]-$time_format[1]-$time_format[2] $time_format[3]:$time_format[4]:$time_format[5]";
    return($cur_time);
}
sub get_now_date {
# in normal

# out now date(YYYY-MM-DD)

    my @time_format = (localtime())[5,4,3];
    $time_format[0] += 1900;
    $time_format[1] += 1;
    foreach $_(@time_format) {
        $_ = sprintf("%02d", $_);
    }
    return($time_format[0],$time_format[1],$time_format[2]);
}
sub get_now_date_unix {
# in normal

#out unixstamp of now date(YYYY,MM,DD)

    my @time_format = (localtime())[5,4,3];
    $time_format[0] += 1900;
# WARNING!! when you want to convert time to unixstamp,don't add 1 to month!!

# $time_format[1] += 1;

    foreach $_(@time_format) {
        $_ = sprintf("%02d", $_);
    }
    my $cur_date_unix=timelocal(0,0,0,$time_format[2],$time_format[1],$time_format[0]);
    return($cur_date_unix);
}


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载