首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有用于将秒转换为英语的CPAN模块?

是否有用于将秒转换为英语的CPAN模块?
EN

Stack Overflow用户
提问于 2011-09-25 21:06:19
回答 5查看 2.3K关注 0票数 5

是否有一个CPAN模块可以将秒数转换为人类可读的间隔英文描述?

代码语言:javascript
复制
secToEng( 125 ); # => 2 min 5 sec
secToEng( 129_600 ); # => 1 day 12 h

格式并不重要,只要它是人类可读的。

我知道它的实现是微不足道的。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-10-21 22:10:48

从Perlv5.9.5开始,模块Time::Second和Time::Piece是核心Perl发行版的一部分。因此,您无需安装额外的模块即可使用它们。

代码语言:javascript
复制
perl -MTime::Seconds -e 'my $s=125; my $ts=new Time::Seconds $s; print $ts->pretty, "\n"'
# 2 minutes, 5 seconds

perl -MTime::Seconds -e 'my $s=129_600; my $ts=Time::Seconds->new($s); print $ts->pretty, "\n"'
# 1 days, 12 hours, 0 minutes, 0 seconds

您还可以使用诸如$ts->weeks$ts->minutes等东西。

票数 5
EN

Stack Overflow用户

发布于 2011-09-25 22:57:26

事实证明,Time::Duration就是这样做的。

代码语言:javascript
复制
$ perl -MTime::Duration -E 'say duration(125)'
2 minutes and 5 seconds
$ perl -MTime::Duration -E 'say duration(129_700)'
1 day and 12 hours

内容提要如下:

Time::Duration -持续时间的四舍五入或精确英文表达

在以说明其运行时结束的程序中使用的示例:

my time = $start_time ();使用Time::Duration;#然后是所有这些时间的东西,然后结束:打印"Runtime ",duration(time() - $start_time),".\n";

在报告文件年龄的程序中使用的示例:

use Time::Duration;my $file =‘Time_file’;my $age = $^T - (stat($file))9;#9= modtime打印"$file was ",ago($age);

票数 13
EN

Stack Overflow用户

发布于 2011-09-25 22:01:41

可以使用DateTime

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

use strict;
use warnings;

use DateTime;
use Lingua::EN::Inflect qw( PL_N );

my $dt = DateTime->from_epoch( 'epoch' => 0 );
$dt = $dt->add( 'seconds' => 129_600 );
$dt = $dt - DateTime->from_epoch( 'epoch' => 0 );

my @date;
push @date, $dt->days . PL_N( ' day', $dt->days ) if $dt->days;
push @date, $dt->hours . PL_N( ' hour', $dt->hours ) if $dt->hours;
push @date, $dt->minutes . PL_N( ' minute', $dt->minutes ) if $dt->minutes;
push @date, $dt->seconds . PL_N( ' second', $dt->seconds ) if $dt->seconds;

print join ' ', @date;

输出

代码语言:javascript
复制
1 day 12 hours
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7545664

复制
相关文章

相似问题

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