1

我在我的 perl 脚本中使用 delta_workdays() 方法来计算两个日期之间的工作日数。目前我正在使用美国配置文件进行计算,并希望添加对英国的支持。根据用户的位置,将使用美国配置文件或 GB 配置文件。是否有一个 perl 函数可以用来获取用户的位置并使用适当的配置文件?

例如

if ($user_location=="US"){  
   my $cal = Date::Calendar->new( $Profiles->{US} );  
}   
elsif($user_location=="GB"){   
   my $cal = Date::Calendar->new( $Profiles->{GB} );   
} 
4

2 回答 2

1

您可能会向系统询问时区:

use POSIX;
$user_location = strftime '%Z', localtime;

对于美国,您可能会获得 PDT、MDT、MST、CDT 和 EDT(甚至可能是 HST、HADT 和 AKDT)。英国应该是格林威治标准时间。

顺便说一句,对于字符串比较,请使用eq而不是==.

于 2013-04-29T22:42:36.460 回答
0

从什么取?我知道没有系统知道其用户居住在佛罗里达州(US-FL),更不用说他们在那里工作了。它绝对不适用于 Windows 上的任何人(只知道国家/地区)。用户必须指定它。

于 2013-04-29T22:54:46.090 回答