如何确定每一天的日期?

问题描述 投票:0回答:1

请看一下!

我的天数为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;
arrays perl date days
1个回答
0
投票

也许您打算以以下形式编写代码

#!/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;
}
© www.soinside.com 2019 - 2024. All rights reserved.