Perl DateTime发送多个参数?
这是我的密码:Perl DateTime发送多个参数?,perl,Perl,这是我的密码: #!/usr/bin/env perl use strict; use warnings; use Data::Dumper; use DateTime; package Weeks; sub new { my $class = shift; my $self = { }; bless $self, $class; return $self; } sub getWeek { my $self = shift; my $d
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dumper;
use DateTime;
package Weeks;
sub new {
my $class = shift;
my $self = { };
bless $self, $class;
return $self;
}
sub getWeek {
my $self = shift;
my $dummy = shift;
my $year = shift;
my $week = shift;
print "getWeek($dummy, $year, $week)\n";
}
package main;
my $dt = DateTime->new(year => 2015, month => 6, day => 1);
my $weeks = Weeks->new();
print "weeks is $weeks\n";
$weeks->getWeek(2015, 5, 3);
print "Calling getWeek on $dt for " . $dt->year . " week " . $dt->week . "\n";
$weeks->getWeek($dt->year, $dt->week, 3);
当我运行此程序时,我得到:
getWeek(2015, 5, 3)
Calling getWeek on 2015-06-01T00:00:00 for 2015 week 23
getWeek(2015, 2015, 23)
为什么在第二种情况下会发送两次年份?$dt->week()
返回两个值
$dt->week()
返回有关包含此datetime对象的日历周的信息。此方法返回的值也可通过week_year和week_number方法分别获得
ISO将一年的第一周定义为包含1月4日的一周,这相当于说这是与新年重叠至少四天的第一周
通常,周年与对象所在的年份相同,但日历年开始时的日期通常在前一年的最后一周结束,同样,一年的最后几天也可能放在下一年的第一周
您可以使用($dt->week)[1]
来获取周数,但是如果没有第一个值,第二个值将毫无用处。我认为你应该使用以下方法:
$weeks->getWeek($dt->week, 3);
$dt->week()
返回两个值
$dt->week()
返回有关包含此datetime对象的日历周的信息。此方法返回的值也可通过week_year和week_number方法分别获得
ISO将一年的第一周定义为包含1月4日的一周,这相当于说这是与新年重叠至少四天的第一周
通常,周年与对象所在的年份相同,但日历年开始时的日期通常在前一年的最后一周结束,同样,一年的最后几天也可能放在下一年的第一周
您可以使用($dt->week)[1]
来获取周数,但是如果没有第一个值,第二个值将毫无用处。我认为你应该使用以下方法:
$weeks->getWeek($dt->week, 3);
显示args的适当方式:
警告(转储程序(\@))
(在任何班次之前
(除非您想排除$self
)。显示args的适当方式:警告(转储程序(\@))
(在任何班次之前
(除非您想排除$self
)。