Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 从给定日期获取上周的日期_Linux_Date - Fatal编程技术网

Linux 从给定日期获取上周的日期

Linux 从给定日期获取上周的日期,linux,date,Linux,Date,我知道如何使用date--date=“sat.last week”+%m%d%Y”获取上周六日期,但是,我无法获取特定给定日期的上周六日期 我试图从给定日期中找出上周六的日期。例如,让我们假设给定的日期是20140605(以YYYYMMDD格式)或该特定周的任何工作日日期。该给定日期可以是该周六下一周的任何工作日日期(20140602-20140606),我需要导出该日期之前一周的周六日期,该日期(在我的情况下)将为=20140531。如何实现这一点?我有一个小的Python代码片段供您使用:

我知道如何使用
date--date=“sat.last week”+%m%d%Y”
获取上周六日期,但是,我无法获取特定给定日期的上周六日期


我试图从给定日期中找出上周六的日期。例如,让我们假设给定的日期是
20140605
(以YYYYMMDD格式)或该特定周的任何工作日日期。该给定日期可以是该周六下一周的任何工作日日期(20140602-20140606),我需要导出该日期之前一周的周六日期,该日期(在我的情况下)将为=
20140531
。如何实现这一点?

我有一个小的Python代码片段供您使用:

from datetime import datetime, timedelta
import sys


fmt = "%Y%m%d"
daystring = sys.argv[1]
day = datetime.strptime(daystring, fmt)


for d in range(7):
    # Go back a few days, but not more than 6.
    testdate = day - timedelta(days=d)
    # If the test date is a saturday (0 is monday, 6 sunday), output that date.
    if testdate.weekday() == 5:
        print testdate.strftime(fmt)
测试:


我只是在键盘上吐了一点,但这似乎有效:

D="20140605"; date --date "$D $[($(date --date "$D" +%u) + 1) % 7] days ago" +"%Y%m%d"

我在使用您的代码段时遇到以下错误。回溯(最近一次调用last):文件“test_date.py”,第7行,在?day=datetime.strptime(daystring,fmt)属性错误:类型对象“datetime.datetime”没有属性“strptime”“此外,我可以将日期放入变量中吗?并将该变量作为此代码段的参数传递?我怎么知道这些函数在做什么?我尝试了
man
,但它没有显示任何与
datetime
timedelta
相关的内容。感谢您的帮助,如果您能让我知道他们的意思这是一个有效的Python2(.7)程序。将整个内容复制到一个文件中,例如
test.py
,并按照我所示的方式执行。它使用命令行上的第一个参数作为输入日期。代码是Python,模块/函数是Python标准库的一部分。所有这些都记录在Python文档中,而不是手册页中。这意味着您观察到的错误可能是由于未正确应用脚本造成的。正如我所说,只需按原样复制即可。我的python版本是2.4.3。我完全从上面复制了所有代码,但它仍然给我相同的错误。这可能是因为较旧的版本吗?事实上,2.5中添加了
datetime.strtime()
。Python 2.4是10年前发布的,2.4.3是2006年发布的。有没有理由坚持使用如此古老的Python?:)
D="20140605"; date --date "$D $[($(date --date "$D" +%u) + 1) % 7] days ago" +"%Y%m%d"