免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6347 | 回复: 4
打印 上一主题 下一主题

怎样使用perl实现日期转换相减求天数。。。谢谢~ [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-11 12:16 |只看该作者 |倒序浏览
第一种情况:时间格式是yyyymmdd
例:今天是20110510,然后我输入一个时间,如20110605,计算是相差26天,但是用awk怎么实现计算两个时间日期之间相差26天?(5月有31日)

第二种情况:时间格式是yyyymmddhhmmss
例:今天是20110510000000,然后我输入一个时间,如20110605000000,计算是相差26天,但是用awk怎么实现计算两个时间日期之间相差26天?(5月有31日)

请各位大侠支招,谢谢~

论坛徽章:
0
2 [报告]
发表于 2011-05-11 12:28 |只看该作者
Date::Calc

用这个模块。

论坛徽章:
0
3 [报告]
发表于 2011-05-11 13:30 |只看该作者
HP机器没有这个模块,而且不能在系统上随便加模块,所以有没有不加模块能实现的脚本

论坛徽章:
0
4 [报告]
发表于 2011-05-11 13:51 |只看该作者
我倒是自己写过一个函数,计算两个日期间的差,但我不能给你,因为是刚学PERL时写的,算法太低级,拿不出手。

你自己写吧,很容易的。

论坛徽章:
0
5 [报告]
发表于 2011-05-11 14:05 |只看该作者
  1. use POSIX qw(mktime);
  2. use POSIX qw(difftime);

  3. $year = 2011 - 1900;
  4. $mon = 5 - 1;
  5. $mday = 10;
  6. $sec  = 00;
  7. $min  = 00;
  8. $hour = 00;
  9. my $start = mktime ($sec,$min,$hour,$mday,$mon,$year);


  10. $year = 2011 - 1900;
  11. $mon = 6 - 1;
  12. $mday = 5;
  13. $sec  = 00;
  14. $min  = 00;
  15. $hour = 00;
  16. my $end = mktime ($sec,$min,$hour,$mday,$mon,$year);

  17. my $result = difftime($end, $start);
  18. print $result/(24*60*60),"\n";
复制代码
#perl  t
26
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP