措辞严厉的问题......我知道。
我正在处理一个处理前一天数据的应用程序。问题是我知道客户最终会要求每小时或其他任意时间间隔。我知道Java或SQL等语言都有定义日期的掩码。那么定义时间间隔的方法呢?
让我这样问。如果有人要求您创建可配置的软件,您将如何允许用户指定时间间隔?
更新
我正在寻找的是文字表达。想象一下将放入配置文件中的某些东西。
答案 0 :(得分:1)
我不确定我是否理解你的问题。你想要一种输入时间间隔的方法吗?
我不了解您的环境,但大多数语言框架提供了一些或多或少复杂的GUI组件。像日历控件这样的东西可能就是你想要的东西吗?
编辑:啊,它是命令行(或配置文件)。
你能解析一个XML文件吗?在这种情况下,您可以序列化一个时间跨度(大多数语言都有这样的类)。用户可以编辑XML文件,通常只是替换<minutes>
部分的值。反序列化此XML文件以再次获取Timespan非常简单。
如果您更喜欢纯文本或命令行输入,那就不那么容易了。但是,许多语言都支持某种Timespan.Parse(字符串文本,字符串格式)。您应该查看您的环境中是否存在此概念。
许多环境提供某种sscanf(),它解析输入字符串。有时也有“时间”格式。
如果早期的想法没有提供解决方案,您可以尝试使用正则表达式解析日期。本网站和网站上应该有很多关于此主题的资源。
如果您不喜欢正则表达式,请根据您自己的格式规则拆分输入字符串。这虽然是一种丑陋的解决方案。
如果您不想手动拆分用户输入字符串,请使用Random.NextInt(1000)并希望没有人注意到。 0: - )
答案 1 :(得分:1)
以下是Google App Engine的cron API的配置方式,它比cron
更加用户友好:
http://code.google.com/appengine/docs/python/config/cron.html#The_Schedule_Format
实现它的Python(和Java?)源应该在SDK中可用。没有看到提取是多么容易,但它至少应该提供一些想法。
我认为可以根据需要在格式中添加各种内容 - 它的结构足以实现可扩展性。例如,它目前缺少说“过去4分钟的每小时”的能力,这在UNIX cron
中很常见,但与GAE并不真实相关,因为尽管可能引擎可以确定哪些分钟正忙,哪些不是' t,和平衡负载,用户肯定不能。
显然,为普通用户提供看起来像自然语言的东西的主要弱点是,他们会认为你的代码是通灵的,并且期望它也能理解“除了复活节后一周以外的每隔一个星期三”,或“每当时钟发生变化”; - )