发新话题
打印

[已解决] 如果用Perl计算时间差( 此文章被查看:481次,被回复:4篇!! )

本主题由 yunshan 于 2008-4-22 16:08 关闭

如果用Perl计算时间差

问题是这样的:
有个字段是submit_date,当该记录关闭的时候,取当前时间,并与submit_date时间进行计算,取二者之间的差值。
代码如下:
my $currenttime;
my $submittime;
my $result;

$currenttime = GetCurrentDate();
$submittime = $entity->GetFieldValue("submit_date");

$result = $currenttime - $submittime;
$entity->SetFieldValue("defect_lifecycle", $result);
defect_lifecycle是short_string类型的,最后两句代码有问题,希望大家帮忙看看如何解决。
在vb中这个问题很好解决,因为vb有DateDiff方法,而perl好像没有。


问题已经解决 [打开主题]
本主题的最佳答案为 [ 5 楼].



© 本文为 yunshanSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

在cu上看到的perl的内置time_diff模块
use Time::Local;

$time1 = timelocal( 0, 0, 0, 15, 7, 107 );
$time2 = timelocal( 0, 0, 0, 15, 4, 107 );

print scalar localtime( $time1 ), "\n";
print scalar localtime( $time2 ), "\n";

$days = ( $time1 - $time2 ) / 86_400;
print $days;

而 Time::Local 正是 Perl 的标准模块。



© 本文为 听雨屋檐人SCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员
clearcase+clearquest个人博客:听雨屋檐人的博客
听雨屋檐人的淘宝小店!:听雨屋檐人的淘宝小店,欢迎光临

TOP

回复 沙发 的帖子

我已经看到这个了,但感觉用不起来,参数的形式根本就不一样,头疼。



© 本文为 yunshanSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

将日期转换为秒数的函数timelocal($sec, $min, $hours, $mday, $mon, $year);
其中year要将年份减去1900,如2007年应为2007-1900=107

当前时间的秒数直接用
$time1=time();取得

问题在于如何取得提交日期的年月日十分秒

[ 本帖最后由 tinali 于 2008-4-22 15:27 编辑 ]

© 本文为 tinali 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

如果timelocal函数不好用,有个办法可以避开:
比如要计算提交时间和解决时间的时间差
在提交的时候记录提交时间的纪yuan秒,submittime。
在解决的时候记录解决时间的纪yuan秒,resolvetime.

$days=(resolvetime-submittime)/86400;

网站不用限制纪   元这个词吧!


最佳答案
该回答被楼主/管理员列为正解!

© 本文为 tinali 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

发新话题