首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >确定一组日期的事件重复模式

确定一组日期的事件重复模式
EN

Stack Overflow用户
提问于 2010-11-10 02:59:58
回答 4查看 4.2K关注 0票数 20

我正在寻找一个模式,算法,或库,将采取一组日期,并返回一个描述,如果一个退出,即集合11-01-2010,11-08-2010,11-15-2010,11-22-2010,11-29-2010将产生类似“每周一在11月”。

有没有人以前见过这样的东西,或者有任何关于实现它的最佳方式的建议?

EN

回答 4

Stack Overflow用户

发布于 2010-11-23 00:53:41

您可以访问系统日期或系统日期和时间,并根据调用或函数结果返回的日期和星期几在内存中构造粗略的日历点。然后使用相关月份中的天数对它们求和,并在输入中添加day变量的天数和/或访问从周日或周一开始的相关周的日历点,并计算或递增索引到正确的日期。使用固定字符构造文本字符串,并根据需要插入相关变量,如星期几的全名。可能需要多次遍历才能获得要显示或计数其出现的所有事件。

票数 0
EN

Stack Overflow用户

发布于 2010-11-23 18:56:27

首先,找到一个序列,如果它存在:

step = {day,month,year}
period=0
for d = 1 to dates.count-1
    interval(d,step)=datedifference(s,date(d),date(d+1))
next
' Find frequency with largest interval
for s = year downto day
    found=true
    for d = 1 to dates.count-2
        if interval(d,s)=interval(d+1,s) then
            found=false
            exit for
        end if
    next
    if found then
        period=s
        frequency=interval(1,s)
        exit for
    end if
next

if period>0
    Select case period
      case day
        if frequency mod 7 = 0 then
          say "every" dayname(date(1))
        else
          say "every" frequency "days"
        end if
      case month
        say "every" frequency "months on day" daynumber(date(1))
      case years
        say "every" frequency "years on" daynumber(date(1)) monthname(date(1))
    end select
end if

最后,处理“在11月”,“从2007年到2010年”等,应该是显而易见的。

HTH

票数 0
EN

Stack Overflow用户

发布于 2010-11-10 03:39:29

我认为你将不得不建造它,我认为它将是一个细节类的项目。从获取更全面的需求开始。您希望识别哪些日期模式?列出你想让你的算法成功识别的例子。编写你的算法来满足你的例子。将您的示例放在测试套件中,这样当您以后获得不同的需求时,您可以确保您没有破坏旧的需求。

我预测你会写200条if-then-else语句。

好吧,我确实有一个想法。熟悉setsunionscoverageintersection等概念。有一个简短的模式列表,你可以搜索,比如“10月份的每一天”、“11月份的每一天”和“12月份的每一天”。如果这些短模式包含在日期集中,那么可以定义一个union函数,它可以以智能的方式组合短模式。例如,假设您匹配了我上面提到的三种模式。如果你把它们放在一起Union,你会得到“每天都在十月到十二月”。你可以返回最简洁的unions cover你的日期或类似的东西的set

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4137379

复制
相关文章

相似问题

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