我们将尝试在下一个(稍微扩展)的示例中说明这些类,这个示例可用于处理目录中的所有文件(默认情况下)。在目录中使用特定扩展名(默认为 ),根据他们的年龄对其进行排序,并计算每月创建的文件数量,以及在几个月的范围内表示的特定时期内修改的文件数量:
第 6 行使用 DateTime
来包含现在返回的当前日期和时间。
我们使用第 16-17 行中的 来表示访问和修改文件的时刻。 Instant 是以原子秒为单位测量的,是对时间事件的非常低级别的描述;但是,第 18 行中声明的持续时间代表两个不同实例之间转换的时间,我们将使用它来表示年龄。
对于某些变量,我们可能有兴趣用一些日期特征来处理它们。 包含文件更改日期的时间; changed
将返回一个 Instant,但它将转换为日期(Instant
而不是 ),然后从中提取时间。 $time-of-day
将有 «Str+{Dateish}
»
类型。
创建一个日期范围, 与它进行智能匹配。日期可以这样使用;在这种情况下,它会创建一个排除其最后一个元素的 Range
。
这个变量也用于计算修改文件的一年中的月份。 显然是 Dateish,然后有月份方法从中提取该属性。
按年龄对文件进行排序。