在 Perl 中如何检查今天是否是星期一?
需要安装哪些模块?
谁能帮我举个例子?
最简单的方法是使用localtime
. 它返回一个值列表。其中第七个是工作日,从星期日开始。因此,Monday 的值为 1。如果没有给出参数,它使用当前时间 ( time
),这就是您想要的。
if ( (localtime)[6] == 1) {
print "Today is Monday!\n";
}
由于我们只需要索引 6(第 7 个返回值),因此我们可以使用括号localtime
将其强制放入一个列表中,并直接从该列表中访问该索引。我们可以将该标量值与 进行比较1
。
localtime
是一个内置函数。不需要任何额外的模块,甚至不需要包含在 Perl Core 中的模块。这只是开箱即用。
如果您想要更“人性化”(实际上是面向对象)的方式来访问来自 的数据localtime
,请使用Time::Piece
的版本localtime
(Time::Piece
是 perl 5.10 以来的核心模块):
use v5.10;
use Time::Piece qw(localtime);
my $t = localtime;
if ($t->day_of_week == 1) {
say 'Today is Monday, too!';
}
您还可以查看文档并使用:
$t->wday # 1 = Sunday $t->_wday # 0 = Sunday $t->day_of_week # 0 = Sunday $t->wdayname # Tue $t->day # same as wdayname $t->fullday # Tuesday
您还可以使用 DateTime 模块。
use DateTime;
if ( DateTime->today->day_of_week == 1 ) {
print "Today is monday\n"
}
如果您的星期一从 0 开始,您可以使用 day_of_week_0
if ( DateTime->today->day_of_week_0 == 0 ) {
print "Today is monday\n"
}