- 论坛徽章:
- 0
|
本帖最后由 范闲丶 于 2013-08-18 11:21 编辑
昨天这样写感觉有点问题:一是程序不灵活,二是是有错误,比如2013-9-20没排除,所以重新写了一个
#!/usr/bin/perl
while (<DATA>) {
if(/[0-9]{4}-[0-9]{1,2}-[0-9]{2}/){
$min_date="2013-9-28";
$max_date="2013-10-03";
print "$_" if(&com_date($&,$min_date)>=0&&&com_date($&,$max_date)<=0);
}
}
sub com_date
{
@d0=split /-/,$_[0];
@d1=split /-/,$_[1];
for($i=0;$i<3;$i++)
{
next if($d0[$i] eq $d1[$i]);
return $d0[$i]-$d1[$i];
}
}
__DATA__
2013-9-25
2013-9-26
2013-9-27
2013-9-28
2013-9-29
2013-9-30
2013-10-01
2013-10-02
2013-10-03
2013-10-04
2013-10-05
21sasdasda
结果
2013-9-28
2013-9-29
2013-9-30
2013-10-01
2013-10-02
2013-10-03 |
|