免费注册 查看新帖 |

Chinaunix

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

各位高手求救,列出日期问题已经搞了一星期了 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-14 07:21 |只看该作者 |倒序浏览
我要列出 前4个从星期日到星期六的日期

例如今天是2013-12-14

我想列出
2013-12-08~2013-12-14
2013-12-01~2013-12-07
2013-11-24~2013-11-30
2013-11-17~2013-11-14

的日期

拜托大家了已经用了一星期都用不出来,每次用时间的都一个头两个大@@

论坛徽章:
0
2 [报告]
发表于 2013-12-14 11:34 |只看该作者
  1. #!/usr/bin/perl

  2. use Time::Local;

  3. my @today = date_from_utc();
  4. my @reduce = (1,2,3,4,5,6,0);
  5. for(0..3) {
  6.         my @day1 = date_from_utc(date_to_utc($today[0])-($reduce[$today[1]]+$_*7)*86400);
  7.         my @day2 = date_from_utc(date_to_utc($day1[0])-6*86400);
  8.          print "$day2[0] ~ $day1[0]\n";
  9. }

  10. sub date_to_utc {
  11.         my $date = shift;
  12.         my ($year,$month,$day) = split("-",$date);
  13.         return(timelocal(0,0,0,$day,$month-1,$year-1900));
  14. }

  15. sub date_from_utc {
  16.         my $utc = shift();
  17.          $utc = time() if (!$utc);
  18.         my ($sec,$min,$hour,$day,$mon,$year,$weekday,$yeardate,$savinglightday) = (localtime($utc));
  19.         $year += 1900;
  20.         $mon++;
  21.         return (sprintf("%04s-%02s-%02s",$year,$mon,$day),"$weekday");
  22. }
复制代码
你测试一下!

论坛徽章:
0
3 [报告]
发表于 2013-12-14 15:47 |只看该作者
真的太感谢了....程式没问题........万分感谢

论坛徽章:
0
4 [报告]
发表于 2013-12-21 00:41 |只看该作者
还有想问一下我如果除了要列出 前4个从星期日到星期六的日期

还要列出本星期可以帮帮忙吗 感激不进

论坛徽章:
0
5 [报告]
发表于 2013-12-21 21:47 |只看该作者
有搞懂了~~~不好意思~~谢谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP