标签: date-math

找到两个日期之间的月份的最佳方法

我需要能够准确地找到python中两个日期之间的月份.我有一个解决方案,但它不是很好(如优雅)或快速.

dateRange = [datetime.strptime(dateRanges[0], "%Y-%m-%d"), datetime.strptime(dateRanges[1], "%Y-%m-%d")]
months = [] 

tmpTime = dateRange[0]
oneWeek = timedelta(weeks=1)
tmpTime = tmpTime.replace(day=1)
dateRange[0] = tmpTime
dateRange[1] = dateRange[1].replace(day=1)
lastMonth = tmpTime.month
months.append(tmpTime)
while tmpTime < dateRange[1]:
    if lastMonth != 12:
        while tmpTime.month <= lastMonth:
            tmpTime += oneWeek
        tmpTime = tmpTime.replace(day=1)
        months.append(tmpTime)
        lastMonth = tmpTime.month

    else:
        while tmpTime.month >= lastMonth:
            tmpTime += oneWeek
        tmpTime = tmpTime.replace(day=1)
        months.append(tmpTime)
        lastMonth = tmpTime.month
Run Code Online (Sandbox Code Playgroud)

所以只是为了解释一下,我在这里做的是将两个日期转换为iso格式转换为python datetime对象.然后我循环通过在开始日期时间对象中添加一周,并检查月份的数值是否更大(除非月份是12月,然后检查日期是否更少),如果值更大,我将其附加到列表几个月,并一直循环,直到我到达我的结束日期.

它完美地工作它似乎不是一个好方法...

python datetime monthcalendar date-math

81
推荐指数
12
解决办法
10万
查看次数

比较铁路的日期

假设我有一个标准的Post.first.created_at日期时间.我可以2009-06-03 16:57:45.608000 -04:00通过执行以下操作直接将其与格式中的日期时间进行比较:

Post.first.created_at > Time.parse("2009-06-03 16:57:45.608000 -04:00")
Run Code Online (Sandbox Code Playgroud)

编辑:两个字段都是日期时间,而不是日期.

datetime ruby-on-rails date-math

31
推荐指数
2
解决办法
6万
查看次数

PHP找到两个日期时间之间的差异

我试图获得两个日期时间之间的差异,并将其作为一个返回datetime.我找到了使用的例子,diff但我似乎无法做到正确.

$timein = date("Y-m-d H:i:s");
$timeout = date("Y-m-d 20:00:00");
$totaltime = $timein->diff($timeout);
Run Code Online (Sandbox Code Playgroud)

但是$totaltime记录0000-00-00 00:00:00到我的DB.这是因为我没有格式化我的全时变量吗?

php datetime date-math

26
推荐指数
2
解决办法
8万
查看次数

如何在OS X Leopard上的bash脚本中进行日期数学运算?

我意识到我可以用一个小的C或Ruby程序来做这个,但我希望我的脚本尽可能少的依赖.

鉴于这一点,如何在OS X上的bash脚本中进行日期数学计算?我见过一个帖子(在另一个网站上)有人做了以下事情:

date -d "-1 day"

但这似乎不适用于OS X.

附录:

有几个人评论并回应说Ruby,Python,Perl等是OS X的标准配置.我熟悉这三种语言,并且可以轻松编写一个可以满足我想要的脚本.事实上,我已经有了用Ruby编写的脚本.

所以也许我应该澄清"外部依赖"的含义.我的意思是,我不希望我的bash脚本必须调用其外部的任何其他脚本.换句话说,我希望它使用OS X的vanilla安装中可用的一些实用程序,并且已经在路径上.

但是,它看起来不可能,所以我将不得不使用我的外部依赖:Ruby脚本.

macos bash date-math

22
推荐指数
3
解决办法
2万
查看次数

php DateInterval类的对象无法转换为字符串

我已经尝试使用date_diff和date_create来获得已经转换为字符串的两个日期的差异.

这是代码:

$date_1 = date_create();
$date_now = date_format($date_1, 'Y-m-d');


//echo $date_now . "\n";
$date=date_create($date_now);
date_add($date,date_interval_create_from_date_string("3 days"));
$date_return =  date_format($date,"Y-m-d");


$diff = date_diff(date_create($date_now), date_create($date_return));

echo $diff;
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Object of class DateInterval could not be converted to string
Run Code Online (Sandbox Code Playgroud)

php datetime date-math dateinterval

18
推荐指数
1
解决办法
2万
查看次数

任何一年的回报开始和结束

我需要两个或一个(out)C#方法,它将占用任何日期时间并返回该年份的年份开始日期和结束日期.

c# datetime date-math date-manipulation

16
推荐指数
2
解决办法
2万
查看次数

在Ruby中,12个月!= 1.1年

Ruby的日期/时间助手很有用但我发现了一个差异.似乎12个月不等于1年.检查1.月,你会发现它等于30.days,当然,12*30.days = 360.days,比实际年份的长度短5.25天.

当我根据客户指定的授权月数设置访问我们网站的某些组件时,我遇到了这种情况.我发现在运行我的测试时,一个36个月的术语提前几周到期了.解决方案是这样的:

def months_to_seconds(number_of_months)
  ( (number_of_months.to_f / 12) * 1.year).to_i.seconds
end
Run Code Online (Sandbox Code Playgroud)

这将返回number_of_months表示的一年中任何部分的秒数.

由于1年是等于几秒到365.25天,为什么你认为他们没有1.month返回一年的1/12而不是30天的秒?

以前有人碰过这个吗?有没有人有更好的解决方案?

ruby ruby-on-rails date-math

11
推荐指数
2
解决办法
3845
查看次数

Php,日期操纵?

我是php的新手.我想知道php中的一些日期操作事项.

// Get Current date
$date = date("Y-m-d");
Run Code Online (Sandbox Code Playgroud)

如果我想减去当前日期和特定日期怎么办,让我们说"今天 - 2008-06-26"?

  1. 如何在PHP中进行日期数学操作(添加,减号,多重等)?

  2. 如果今天,订阅者今天订阅2009-06-26,1周后我想从我的数据库中删除他的帐户,我该怎么做?(我使用的是mysql)

  3. 如果我们将用户的日期存储在我们的数据库中,我们该怎么办?例如,我们可以存储用户的bday日期,所以在他的bday日,我们给他发了一些电子邮件.还有什么可以约会?

php date date-math

8
推荐指数
1
解决办法
6607
查看次数

提升local_date_time数学错误?

我正在我的项目中使用Boost的日期时间库.当我发现它有持续时间类型的小时,天,月,年等时,我感到非常高兴,并且它们会根据您添加它们的内容来更改它们的值(即,在月份的一部分中添加1个月的预付款) ,它不只是添加30天或某些).我认为这个属性适用于日期类型,但我决定在我投入生产之前测试它...

local_date_time t1(date(2010, 3, 14), hours(1), easternTime, false); // 1am on DST transition date

{
    CPPUNIT_ASSERT_EQUAL(greg_year(2010), t1.local_time().date().year());
    CPPUNIT_ASSERT_EQUAL(greg_month(3), t1.local_time().date().month());
    CPPUNIT_ASSERT_EQUAL(greg_day(14), t1.local_time().date().day());
    CPPUNIT_ASSERT_EQUAL(1L, t1.local_time().time_of_day().hours());
    CPPUNIT_ASSERT_EQUAL(0L, t1.local_time().time_of_day().minutes());
    CPPUNIT_ASSERT_EQUAL(0L, t1.local_time().time_of_day().seconds());
}

t1 += days(1); // the time in EST should now be 1am on the 15th
{
    CPPUNIT_ASSERT_EQUAL(greg_year(2010), t1.local_time().date().year());
    CPPUNIT_ASSERT_EQUAL(greg_month(3), t1.local_time().date().month());
    CPPUNIT_ASSERT_EQUAL(greg_day(15), t1.local_time().date().day());
    CPPUNIT_ASSERT_EQUAL(1L, t1.local_time().time_of_day().hours()); // fails, returns 2
    CPPUNIT_ASSERT_EQUAL(0L, t1.local_time().time_of_day().minutes());
    CPPUNIT_ASSERT_EQUAL(0L, t1.local_time().time_of_day().seconds());
}
Run Code Online (Sandbox Code Playgroud)

上面你会看到我的CPPUNIT单元测试.它在指示的2行失败,如果days()仅仅增加了24小时而不是1个逻辑日(因为DST转换导致2010-03-14在EST中长达23个小时),这就是我所期望的.

难道我做错了什么?这是一个错误吗?在这种数学方面,我是否完全误解了图书馆的设计目标?

c++ datetime boost date-math

8
推荐指数
1
解决办法
1612
查看次数

Python请求:仅在较新版本时下载

仅当服务器副本比本地副本新时,从服务器下载新文件的标准pythonic方法是什么?

我的python-search-fu今天非常薄弱,或者确实需要滚动自己的日期时间解析器和比较器,如下所示。真的没有requests.header.get_datetime_object('last-modified')吗?还是request.save_to_file(url, outfile, maintain_datetime=True)

import requests
import datetime

r = requests.head(url)
url_time = r.headers['last-modified']
file_time = datetime.datetime.fromtimestamp(os.path.getmtime(dstFile))
print url_time  #emits 'Sat, 28 Mar 2015 08:05:42 GMT' on my machine
print file_time #emits '2015-03-27 21:53:28.175072' 

if time_is_older(url_time, file_time):
    print 'url modtime is not newer than local file, skipping download'
    return
else:
    do_download(url)
    os.utime(dstFile, url_time) # maintain server's file timestamp

def time_is_older(str_time, time_object):
    ''' Parse str_time and see if is older than time_object.
        This is a fragile function, …
Run Code Online (Sandbox Code Playgroud)

python date-math python-requests

8
推荐指数
1
解决办法
2116
查看次数