我的程序接受“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”是否是工作日?任何语言都可以。谢谢。
答案 0 :(得分:1)
任何语言?在Java中,我使用SimpleDateFormat
或Joda Time的DateTimeFormatter
。在C#中我会使用DateTime.ParseExact
或Noda Time的LocalDatePattern
。在所有这些情况下,结果都是一个值,可以询问一周中的某些事情。
在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中执行的几个与时间/时间相关的事情: