请看一下!
我的天数为1到30天,因此我需要遍历天数,并使用“ for”循环为每个对应天数标识一个日期,开始日期为:$ epoc = 2020-05-11 ;因此,iam将其转换为epoc秒,然后我找到了以sec(30天)为单位的最后一个日期。我能够像这样解决它,但是我需要一个“ for”循环。有可能吗?
#!/usr/bin/perl
use Time::Local;
use Time::Localtime;
$day_a1 = 1;
$day_a2 = 30;
my ($year, $month, $day) = split('-', $epoc);
$epoc = timelocal($s, $m, $h, $day, $month-1, $year-1900);
$interval=$day_a2*60*60*24;
$epoc1=$epoc+$interval;
print scalar(localtime($epoc1)), "\n";
@x1=();
@date1=();
for ($d = $day_a1; $d <= $day_a2; $d++){
push (@x1, $d);
}
for ($d = $epoc; $d <= $epoc1; $d+=86400){
print scalar(localtime($d));
push (@date1, $d);
}
print @x1;
print @date1;
也许您打算以以下形式编写代码
#!/usr/bin/perl
use strict;
use warnings;
use feature 'say';
use Time::Local;
use Time::Localtime;
my $days = 30;
my $date = '2020-05-11';
my $day_sec = 60*60*24;
my ($year, $month, $day) = split('-', $date);
my $epoch = timelocal(0, 0, 0, $day, $month-1, $year-1900);
for(my $day=0; $day<$days; $day++) {
say scalar localtime($epoch);
$epoch += $day_sec;
}