我打算在Linux环境下用C编写一个模块,以从用户定义的日期和时间字符串中读取时间。用户可以输入如下所示的时间(不限于)。他可以跳过日期,也只能输入时间。

DD/MM/YY HH-MI-SS
DD/MM/YYYY HH/MI/SS
YYYY-MM-DD-HH-MI-SS-MSC
YYYY-DDD-HH-MI-SS
HH-MI-SS
HH/MI/SS
.......


如何向用户提供这样的便利?用户应具有选择其表达方式的灵活性。
该模块应具有从该表达式中提取日期和时间详细信息的能力。在第一步中,他应该定义他的表情。在第二步中,他应该根据自己的表情输入时间。

最佳答案

如果您提前知道格式是什么(因为用户已经告诉您),则可以使用标准的strftime()函数来处理您显示的所有选项。您必须将使用的表示法转换为%X使用的strftime()表示法,但这主要是机械性的(除了MM在月份和分钟之间是模棱两可的)。

如果您不提前知道格式是什么,那么生活就会困难得多。特别是,给定一个值,代码没有可靠的方法来区分:

DD/MM/YY
MM/DD/YY
HH/MI/SS


给定足够的样本数据,您可能可以区分它们,但是您确实需要足够的样本。

10-06 14:20
查看更多