-1

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

4

2 回答 2

2

任何语言?在 Java 中,我会使用SimpleDateFormat或 Joda Time 的DateTimeFormatter. 在 C# 中,我要么使用DateTime.ParseExact,要么使用Noda 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

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

于 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 中执行的几项与时间/计时相关的事情:

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

于 2011-11-22T19:34:08.957 回答