Chinaunix
标题:
怎么求两个日期中间的间隔日期?
[打印本页]
作者:
赛萌
时间:
2016-03-21 16:25
标题:
怎么求两个日期中间的间隔日期?
本帖最后由 赛萌 于 2016-03-23 14:05 编辑
25 2 0 二元代金券 2016-03-07 00:00:02 2016-03-14 00:00:02
25 2 0 二元代金券 2016-03-07 00:00:02 2016-03-14 00:00:02
25 2 0 二元代金券 2016-03-07 00:00:09 2016-03-14 00:00:09
25 2 0 二元代金券 2016-03-07 00:00:13 2016-03-14 00:00:13
25 2 0 二元代金券 2016-03-07 00:00:16 2016-03-14 00:00:16
25 2 0 二元代金券 2016-03-07 00:00:22 2016-03-14 00:00:22
25 2 0 二元代金券 2016-03-07 00:00:27 2016-03-14 00:00:27
25 2 0 二元代金券 2016-03-07 00:00:30 2016-03-14 00:00:30
怎么得出:
2016-03-07 25 2 二元代金券 8张
2016-03-08 25 2 二元代金券 8张
2016-03-09 25 2 二元代金券 8张
2016-03-10 25 2 二元代金券 8张
2016-03-11 25 2 二元代金券 8张
016-03-12 25 2 二元代金券 8张
2016-03-13 25 2 二元代金券 8张
作者:
sunzhiguolu
时间:
2016-03-21 17:05
回复
1#
赛萌
说下求间隔日期有什么规律? 如何计算的?
作者:
sunzhiguolu
时间:
2016-03-21 17:08
本帖最后由 sunzhiguolu 于 2016-03-21 17:12 编辑
回复
1#
赛萌
代金券的张数如何计算?
作者:
赛萌
时间:
2016-03-21 17:20
回复
2#
sunzhiguolu
这是前两列表示满多少元可以使用几元优惠券,以这里的第一行举例说,满25元可以使用2元优惠券,使用日期是2015-12-27 12:55:52 到2016-03-20 23:59:59,就表示在这期间的每一天你都拥有这个优惠券,那么第二行又有这个满25可以减2的优惠券,单单统计这两行,就是说2016-03-14到2016-03-20这7天里你有满25减2的二元优惠券有两张。
作者:
赛萌
时间:
2016-03-21 17:21
回复
3#
sunzhiguolu
还有其他要求的代金券,目的是求每天有多少张不同的优惠券,以及对对应的券有几张。
作者:
sunzhiguolu
时间:
2016-03-21 17:57
回复
5#
赛萌
拿出点测试数据来, 也好写代码. (突出有要求的部分)
作者:
赛萌
时间:
2016-03-21 18:41
回复
6#
sunzhiguolu
附件已上传,请测试。
作者:
赛萌
时间:
2016-03-21 18:52
回复
6#
sunzhiguolu
我觉得可能Perl实现不了。
作者:
sunzhiguolu
时间:
2016-03-21 19:16
本帖最后由 sunzhiguolu 于 2016-03-21 19:47 编辑
回复
8#
赛萌
把条件详细的说明一下, 很有可能实现不了, 不是 perl 而是我的水平.
例如, 每列的含义, 进行处理时那些列的数据是关联的, 等等... 我看到 2,3,4 列的数据变化较多.
uniq.jpg
(128.49 KB, 下载次数: 40)
下载附件
2016-03-21 19:47 上传
作者:
赛萌
时间:
2016-03-21 19:40
回复
9#
sunzhiguolu
恩,有重复应该是Perl实现不了
作者:
sunzhiguolu
时间:
2016-03-21 21:07
回复
10#
赛萌
不是 perl 实现不了, 而是有些条件并不是很清晰, 未能找到合适的键. 而且有部分数据格式不一致, 这倒是给处理增加了难度.
作者:
sunzhiguolu
时间:
2016-03-21 22:34
本帖最后由 sunzhiguolu 于 2016-03-21 22:37 编辑
我查了下, 主要问题集中在第二列.
443237 17 0 生日特礼 2016-03-07 12:25:24 2016-03-14 12:25:24 MissIndex=>1,
756903 8 1 生日特礼 2016-03-07 21:01:16 2016-03-14 21:01:16 MissIndex=>1,
529843 24 1 生日特礼 2016-03-07 23:46:07 2016-03-14 23:46:07 MissIndex=>1,
77812 23 0 生日特礼 2016-03-08 14:23:52 2016-03-15 14:23:52 MissIndex=>1,
690772 21 1 生日特礼 2016-03-08 22:06:52 2016-03-15 22:06:52 MissIndex=>1,
54815 10 1 生日特礼 2016-03-08 23:08:16 2016-03-15 23:08:16 MissIndex=>1,
778466 19 1 生日特礼 2016-03-09 06:25:43 2016-03-16 06:25:43 MissIndex=>1,
501329 22 1 生日特礼 2016-03-09 14:17:30 2016-03-16 14:17:30 MissIndex=>1,
179357 15 1 生日特礼 2016-03-09 21:07:08 2016-03-16 21:07:08 MissIndex=>1,
662143 19 1 生日特礼 2016-03-10 08:15:30 2016-03-17 08:15:30 MissIndex=>1,
653901 14 1 生日特礼 2016-03-10 09:50:30 2016-03-17 09:50:30 MissIndex=>1,
211430 19 1 生日特礼 2016-03-10 10:23:46 2016-03-17 10:23:46 MissIndex=>1,
1132 3 0 3元无门槛优惠券 2016-03-10 16:01:04 2016-03-17 16:01:04 MissIndex=>1,
1366 3 1 3元无门槛优惠券 2016-03-10 16:01:07 2016-03-17 16:01:07 MissIndex=>1,
1132 3 1 3元无门槛优惠券 2016-03-10 16:01:28 2016-03-17 16:01:28 MissIndex=>1,
1366 3 1 3元无门槛优惠券 2016-03-10 16:02:56 2016-03-17 16:02:56 MissIndex=>1,
231417 3 1 3元无门槛优惠券 2016-03-10 16:03:12 2016-03-17 16:03:12 MissIndex=>1,
1132 3 1 3元无门槛优惠券 2016-03-10 16:03:31 2016-03-17 16:03:31 MissIndex=>1,
231417 3 1 3元无门槛优惠券 2016-03-10 16:03:39 2016-03-17 16:03:39 MissIndex=>1,
231417 3 1 3元无门槛优惠券 2016-03-10 16:04:08 2016-03-17 16:04:08 MissIndex=>1,
1262 3 1 3元无门槛优惠券 2016-03-10 16:21:17 2016-03-17 16:21:17 MissIndex=>1,
868962 3 1 3元无门槛优惠券 2016-03-10 16:22:24 2016-03-17 16:22:24 MissIndex=>1,
3285 3 1 3元无门槛优惠券 2016-03-10 17:19:53 2016-03-17 17:19:53 MissIndex=>1,
3365 3 1 3元无门槛优惠券 2016-03-10 17:52:11 2016-03-17 17:52:11 MissIndex=>1,
241567 17 1 生日特礼 2016-03-11 08:11:49 2016-03-18 08:11:49 MissIndex=>1,
707166 11 1 生日特礼 2016-03-12 00:11:41 2016-03-19 00:11:41 MissIndex=>1,
73863 11 1 生日特礼 2016-03-12 00:42:19 2016-03-19 00:42:19 MissIndex=>1,
315082 5 1 生日特礼 2016-03-12 07:02:20 2016-03-19 07:02:20 MissIndex=>1,
351587 18 0 生日特礼 2016-03-12 08:09:38 2016-03-19 08:09:38 MissIndex=>1,
30027 11 0 生日特礼 2016-03-12 09:14:02 2016-03-19 09:14:02 MissIndex=>1,
452351 5 1 生日特礼 2016-03-12 09:16:44 2016-03-19 09:16:44 MissIndex=>1,
895650 14 0 生日特礼 2016-03-12 10:40:21 2016-03-19 10:40:21 MissIndex=>1,
121916 11 1 生日特礼 2016-03-12 20:25:08 2016-03-19 20:25:08 MissIndex=>1,
267709 21 1 生日特礼 2016-03-13 08:02:15 2016-03-20 08:02:15 MissIndex=>1,
522476 5 1 生日特礼 2016-03-13 21:47:43 2016-03-20 21:47:43 MissIndex=>1,
281901 5 1 生日特礼 2016-03-14 08:25:59 2016-03-21 08:25:59 MissIndex=>1,
656921 21 1 生日特礼 2016-03-14 09:20:05 2016-03-21 09:20:05 MissIndex=>1,
35379 6 1 生日特礼 2016-03-14 13:14:07 2016-03-21 13:14:07 MissIndex=>1,
516361 22 1 生日特礼 2016-03-14 14:24:29 2016-03-21 14:24:29 MissIndex=>1,
529546 11 1 生日特礼 2016-03-14 21:13:29 2016-03-21 21:13:29 MissIndex=>1,
189474 18 1 生日特礼 2016-03-15 00:04:45 2016-03-22 00:04:45 MissIndex=>1,
410548 12 1 生日特礼 2016-03-15 11:48:38 2016-03-22 11:48:38 MissIndex=>1,
551424 6 1 生日特礼 2016-03-15 23:08:00 2016-03-22 23:08:00 MissIndex=>1,
209302 24 0 生日特礼 2016-03-16 00:10:16 2016-03-23 00:10:16 MissIndex=>1,
178246 19 0 生日特礼 2016-03-16 00:49:01 2016-03-23 00:49:01 MissIndex=>1,
260674 25 0 生日特礼 2016-03-16 15:59:52 2016-03-23 15:59:52 MissIndex=>1,
277951 25 1 生日特礼 2016-03-16 19:09:33 2016-03-23 19:09:33 MissIndex=>1,
27918 6 1 生日特礼 2016-03-17 04:29:54 2016-03-24 04:29:54 MissIndex=>1,
411083 10 0 生日特礼 2016-03-17 08:14:47 2016-03-24 08:14:47 MissIndex=>1,
518526 21 1 生日特礼 2016-03-17 15:33:52 2016-03-24 15:33:53 MissIndex=>1,
435823 12 1 生日特礼 2016-03-17 16:54:59 2016-03-24 16:55:00 MissIndex=>1,
148980 10 0 生日特礼 2016-03-18 15:01:40 2016-03-25 15:01:40 MissIndex=>1,
654819 20 1 生日特礼 2016-03-18 15:53:27 2016-03-25 15:53:28 MissIndex=>1,
454772 20 1 生日特礼 2016-03-18 22:57:16 2016-03-25 22:57:16 MissIndex=>1,
442462 21 1 生日特礼 2016-03-18 23:02:20 2016-03-25 23:02:20 MissIndex=>1,
400820 21 1 生日特礼 2016-03-19 07:49:48 2016-03-26 07:49:48 MissIndex=>1,
524311 25 0 生日特礼 2016-03-20 04:52:31 2016-03-27 04:52:31 MissIndex=>1,
134446 15 0 生日特礼 2016-03-20 08:47:07 2016-03-27 08:47:07 MissIndex=>1,
641344 10 0 生日特礼 2016-03-20 12:12:12 2016-03-27 12:12:12 MissIndex=>1,
435679 13 1 生日特礼 2016-03-20 12:32:21 2016-03-27 12:32:21 MissIndex=>1,
491757 9 1 生日特礼 2016-03-21 11:21:18 2016-03-28 11:21:18 MissIndex=>1,
171692 21 0 生日特礼 2016-03-21 11:52:18 2016-03-28 11:52:18 MissIndex=>1,
Stat <62> lines.
复制代码
大家进行处理的时候, 还请多加小心才好...
作者:
赛萌
时间:
2016-03-21 23:28
回复
12#
sunzhiguolu
谢谢。不过你的说是什么意思?这个东西不能写哈希,因为都有重复,没有一列里的内容不重复的
作者:
RE_HASH
时间:
2016-03-21 23:39
Date::Calc::Iterator
作者:
sunzhiguolu
时间:
2016-03-21 23:40
回复
13#
赛萌
数据文件是你提供的, 找到一个解决方案是你的期望.
不知道现在的你如何打算?
作者:
赛萌
时间:
2016-03-22 00:05
回复
15#
sunzhiguolu
我给上司说perl实现不了
作者:
RE_HASH
时间:
2016-03-22 02:34
本帖最后由 RE_HASH 于 2016-03-22 05:53 编辑
回复
14#
RE_HASH
1。用1楼的数据
2。CPAN 安装Date::Calc::Iterator模块
-------------------
use Date::Calc::Iterator;
while (<>)
{
s/ +/\t/g;
my @F = split /\t/, $_;
my $key = join "\t" , @F[0,1,3];
my @start = /(\d{4})-(\d{2})-(\d{2})/;
my @end = /\G.*(\d{4})-(\d{2})-(\d{2})/;
my $i1 = Date::Calc::Iterator->new(from => \@start , to => \@end);
while ($D = $i1->next)
{
my $Date = join '-', @$D;
$Date =~ s/-(\d)\b/-0\1/g;
$OUT->{$Date}->{$key} ++;
}
}
foreach $D (sort keys %$OUT)
{
foreach $key (sort keys %{$OUT->{$D}})
{
print "$D\t$key\t$OUT->{$D}->{$key}\n" ;
}
}
——————
$> perl dates.pl zz
2016-03-07 25 2 二元代金券 8
2016-03-08 25 2 二元代金券 8
2016-03-09 25 2 二元代金券 8
2016-03-10 25 2 二元代金券 8
2016-03-11 25 2 二元代金券 8
2016-03-12 25 2 二元代金券 8
2016-03-13 25 2 二元代金券 8
2016-03-14 25 2 二元代金券 8
作者:
赛萌
时间:
2016-03-22 12:09
回复
17#
RE_HASH
哇咔咔,好厉害,谢谢。
作者:
iamlimeng
时间:
2016-03-22 14:06
Perl非常擅长干这种活!
作者:
赛萌
时间:
2016-03-22 19:50
回复
19#
iamlimeng
啊???真的吗,原谅我,我还是个低级的菜鸟,还请大神指点一二,谢谢。
作者:
sunzhiguolu
时间:
2016-03-22 21:35
回复
20#
赛萌
你把你的数据整理下, 或者应该说下, 如果字段数量不一致时缺失的字段应该如何处理. 毕竟数据是你提供的, 你对它应该最了解, 其他你懂得...
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2