我的程序接受“yyyymmdd”格式的日期,我不知道如何检查它是否是工作日。我见过 ppl 在其他线程中使用$(date +%u) -gt 5
or "$(date +%a)" in Sat|Sun echo "weekend"
,但 ${date} 就像Tue Nov 22 14:16:35 EST 2011
我猜的那样。那么有没有一种将“yyyymmdd”转换为${date}格式的好方法呢?或者有没有一种简单的方法来检查“yyyymmdd”是否是工作日?任何语言都可以。谢谢。
问问题
1506 次
2 回答
2
任何语言?在 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
这是完全未经测试的,但是...
于 2011-11-22T19:28:01.123 回答
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 中执行的几项与时间/计时相关的事情:
于 2011-11-22T19:34:08.957 回答