如何检查“yyyymmdd”格式的日期是否为工作日?

时间:2011-11-22 19:24:06

标签: date dayofweek

我的程序接受“yyyymmdd”格式的日期,我不知道如何检查它是否是工作日。我在其他帖子中看到了使用$(date +%u) -gt 5"$(date +%a)" in Sat|Sun echo "weekend"的ppl,但我认为$ {date}就像Tue Nov 22 14:16:35 EST 2011。那么将“yyyymmdd”转换为$ {date}格式是否有好方法?或者有一种简单的方法来检查“yyyymmdd”是否是工作日?任何语言都可以。谢谢。

2 个答案:

答案 0 :(得分:1)

任何语言?在Java中,我使用SimpleDateFormat或Joda Time的DateTimeFormatter。在C#中我会使用DateTime.ParseExactNoda TimeLocalDatePattern。在所有这些情况下,结果都是一个值,可以询问一周中的某些事情。

在Python中我怀疑你想要datetime.strptime,例如

date = datetime.strptime(text, "%Y%m%d")
day = date.weekday()

if day < 5 # Monday(0) to Friday(4)
    # Do something here

这是完全未经测试的,但是......

答案 1 :(得分:0)

通常,在类型语言(如Java,C#或Python)中,您将1)将“时间”初始化为特定于语言的“时间”类型,然后2)获取“星期几”从当时的某种方法。

看起来你正在使用Bourne shell。这是一种无类型语言,没有原生日期/时间功能。

这是一个可能的解决方案:

http://unix.ittoolbox.com/groups/technical-functional/shellscript-l/day-of-week-bash-script-2018531

以下是您可以在(Linux)Bourne shell中执行的几个与时间/时间相关的事情:

http://tldp.org/LDP/abs/html/timedate.html