首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何识别每一天所在行的日期?

如何识别每一天所在行的日期?
EN

Stack Overflow用户
提问于 2020-06-10 16:52:53
回答 2查看 55关注 0票数 1

请看一看!

我有从1到30天的天数,所以我需要循环通过天数,并使用一个" for“循环确定每个对应日期的日期,开始日期是:$epoc = 2020-05-11;所以,我正在将其转换为epoc秒,我发现最后一个日期(第30天).I能够像这样解决它,但我需要一个"for”循环。有可能吗?

代码语言:javascript
复制
   #!/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;
EN

回答 2

Stack Overflow用户

发布于 2020-06-10 18:47:59

如果你使用了可用的工具,你的生活就会变得容易得多。特别是,自2007年以来,Time::PieceTime::Seconds一直是标准Perl发行版的一部分。

代码语言:javascript
复制
#!/usr/bin/perl

use strict;
use warnings;
use feature 'say';

use Time::Piece;
use Time::Seconds;

my $start = '2020-05-11';

# Add time of midday to avoid DST problems.
my $curr = Time::Piece->strptime("$start 12:00:00", '%Y-%m-%d %H:%M:%S');

for (1 .. 30) {
  say $curr->strftime('%Y-%m-%d');
  $curr += ONE_DAY;
}
票数 4
EN

Stack Overflow用户

发布于 2020-06-10 18:10:02

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

代码语言:javascript
复制
#!/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;
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62299520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档