0

我在两个世界之间徘徊,我在命令行工具中有这个非常直观(但复杂)的机制,我想知道我应该在多大程度上解释这一点。

我可以采用简单的方式,根本不解释它,并相信我的用户自己会弄清楚,但是有些用户可能永远不会发现这个特定的功能。

我可以采取可怕的方式,在帮助输出和手册页中加入大量数学符号,但随后用户可能会认为这太复杂了,他们可能会对我的工具或这个特定功能产生莫名的恐惧。

我如何同时解决实验性用户和保守用户(当某些事情没有得到正确解释时不会加倍努力的用户)?

详细信息:
该工具是关于日期和时间算术的,特别是计算两个日期和/或时间之间的持续时间,并根据格式规范格式化结果。

我的内部设计使用这样的乘法表:

-  x  d  t  dt
x  x  x  x  x
d  x  D  x  D
t  x  x  T  x
dt x  D  x  S

其中x是未知(不可解析)输入,d是日期,t是时间并且dt是日期时间,D是日期持续时间(分辨率为 1 天),T是持续时间(分辨率为 1 秒),并且S是时间戳持续时间(分辨率 1 秒)。

现在结果取决于持续时间类型和给定的格式说明符,我真的缺乏一种简洁的方式来解释这一点,所以我举个例子:

'%d' will return the duration in days (like 12 days)
'%w' will return the duration in weeks (like 1 week)
'%w %d' will return the duration in weeks and days (like 1 week and 5 days)
...
'%S' will return the duration in seconds (e.g. 86464 seconds)
'%M' will return the duration in minutes (e.g. 1441 minutes)
'%H' will return the duration in hours (e.g. 24 hours)
'%H %M %S' will return the duration in hours, minutes and seconds (24h 1m 4s)
'%H %S' will return the duration in hours and seconds (24h 64s)
...

我的意思是,我可能只用这几个例子就可以弄清楚我的意思,但是那里没有正式的解释或任何东西。

为清楚起见:
我试图解决的问题是您可以组合任何标志(秒、小时、天、月等),程序将“智能地”为您提供结果。Like%Y %d会给你一年和天数(在 0 到 365 范围内),而%Y %m %d会给你在 0 到 30 范围内的天数(因为其余的都是在当月“捕获”的)。

示例:%Y %d给出1 year 90 days%Y %w %d给出1 year 12 weeks 6 days

4

1 回答 1

1

如果您希望在工具本身中创建帮助文本,请查看 linux date命令的帮助。

或者,您可以执行以下操作:

$ your_app --help

 usage: your_app [OPTIONS] [FORMAT]

 Returns the elapsed time between blah blah....

 FORMAT:

 // list formats here

 OPTIONS:

 --help           Display this help text
 --help-detailed  Display more extensive help text
 --help-examples  Display example uses

如果我是用户,我希望--help列出所有选项作为参考,并且希望手册页包含尽可能多的细节。我倾向于使用 --help 作为提醒,使用手册页作为权威参考。

不管文本写得多么好,一些具体的例子总是有价值的。

于 2012-04-05T14:25:04.380 回答