问题标签 [relativedelta]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
65 浏览

python - python-dateutil 的 relativedelta 的行为不一致

也许我不明白背后的意图relativedelta,但是行为的不一致,即较小的子区间被折叠成较大的子区间,以便表示最小的子区间集似乎是不可取的。具体来说,几个月似乎会变成几年,但几天和几周仍然模棱两可(即天数 = 周数 * 7 + 剩余天数)。

这里rd.years = 1, rd.months = 1, rd.weeks = 3, 和rd.days = 25.

这是为什么?我希望子间隔相互排斥。

0 投票
1 回答
1102 浏览

python - 应用 relativedelta 时如何忽略 NA

我必须在日期列中添加“N”个月,并试图使用此功能来帮助我这样做。

我不断收到错误

0 投票
5 回答
6277 浏览

python - 我如何在熊猫上获得年龄和日期

这是我的数据

这是我的代码

这是结果

我想要的结果是

现在就让你,bydf.dtypesDate-of-birth一个对象,因为它是基于下拉列表中的客户输入

我怎样才能做到这一点?我希望这个问题足够清楚

0 投票
2 回答
964 浏览

python - 如何每月为银行账户余额增加一次利息?

我必须创建一个具有以下功能的银行账户类:存款、取款、获取余额;所有那些初学者的东西。一切都很简单,我完成了没问题。但是,有一个名为 Interest 的函数接受了一个 interest_rate ,我遇到了很多麻烦。解释一下,这个功能应该每月只根据用户的请求增加一次兴趣到银行账户的余额。因此,假设我决定在今天(10 月 13 日)将 5% 的利息添加到我的余额中。该函数将执行并吐出我的新余额。然后假设我想在第二天(10 月 14 日)添加 10% 的利息,该函数不会执行,并且会吐出类似“无法在 11 月 1 日之前添加利息”之类的内容,这是下个月的第一天。在 11 月 1 日,如果我尝试添加 10% 的利息,我会成功,然后如果在 11 月 2 日我再次尝试添加利息,它会说“直到 12 月 1 日才能添加利息”等等。我很难过。下面是我编写的代码,但它不仅会执行,因为日期总是提前一个月,而且它也总是会增加余额的兴趣。

这是我到目前为止所拥有的,但它是一团糟。有人对我应该做什么有任何提示吗?我知道它不像作业中应该的那样在函数内部,但我想我会先弄清楚程序的主要图片,然后再担心将其合并到我班级的其余部分中。

0 投票
3 回答
878 浏览

python - 无法使用 dateutil relativedelta 重构结束日期

我正在使用 dateutil.relativedelta 来计算年龄。当结果出现在某些情况下不正确时,我正在验证结果。仅当开始日期为 1 日且月末为 31 日时才会出现此问题,但并非所有这些月份都出现此问题!奇怪的是,1 月和 8 月的结果是正确的。我确实错过了一些东西,但无法确定什么和在哪里。

我在 Win32 和 dateutil 2.7.5 上使用 python 2.7.10(但与 2.6.1 相同的问题)

要运行的代码:

输出:

此外,如果可以(并且这个词存在),3 月的结束日期甚至更错误。

如果有人能启发我,那将不胜感激。提前致谢。

0 投票
1 回答
57 浏览

python - 准确获取跨越不同年份的两个日期之间的月数的最佳方法

我需要能够准确地找到两个日期之间的月数,即使它们跨越不同的年份。我有从这个StackOverflow 线程获得的以下解决方案,但它在日期跨越不同年份时失败。

工作时间跨度一年

跨越多年时失败

鉴于此,我考虑了以下解决方案:

因此,我的问题是,有没有比我目前拥有的更好的解决方案?

0 投票
2 回答
154 浏览

python-3.x - 如何从日期时间转换为每月的工作日常量?

我想要做的是找出这个月的 X 是什么,并返回它的相对增量常数 ( Su Mo Tu...)。我发现了许多跳转到一个月中特定日期的示例 ( 1 )。例如,今天是 12 月的第 3 个星期二,我可以这样做:+ relativedelta(month=12, day=1, weekday=TU(3)))但我想做的是相反的:输入今天的日期并减去本月的第一天,得到类似的东西,TU(3)或者如果它是第 4 天周三获得:WE(4)

我的最终目标是能够将此常量转移到不同的月份或 timedelta 对象并找到等效的第 3 个星期二或第 4 个星期三等...

0 投票
1 回答
85 浏览

python - 月份范围计算未返回预期结果

如果我将日期设置为以下:

它将返回意外结果,如下所示:

我期待它回来12

我正在尝试获取月份范围。

例如:2018-12-01 到 2019-10-31 会给我 10 个月的结果。

我有以下 python test.py 文件:

当我运行 test.py 文件时,它将返回以下内容

这就是预期的结果。

如果 2018-12-01 到 2019-10-31 返回 10 个月,这是正确的,我希望在输入时得到相同的正确计算:2018-12-01 到 2019-12-01。

每当我在 start_date 和 end_date 中输入相同的月份时,就会发生这种问题,而不管不同的年份。我应该怎么做才能使其按预期工作?非常感激您的帮忙。

提前致谢。

0 投票
1 回答
910 浏览

pandas - relativedelta - 根据列值添加月数

我想将“确切月份”添加到开始日期到开始日期,以计算结束日期并一直在使用 relativedelta。我有以下内容:

df1['Start Date'] 当前是 datetime64[ns] 而 df1['Months'] 是 float64。

最终结果应该是 df1['Start Date'] + .df1['Months'] - 1 天,但 relativedelta 方面很重要,因为我想返回“确切的月份”。NaN 可以继续返回 NaN。

这是我尝试的计算:

我收到以下错误,我不确定如何解决:

我尝试了以下方法无济于事:

非常感谢您的帮助。

0 投票
1 回答
346 浏览

python - 如何处理时间间隔的求和和乘法?

我需要在添加(int)deadline之后计算 (datetime) (由 relativedelta 表示,因为它可以是几个月或几年,也可以是秒或日期)。我可以简单地通过乘以并将其相加到(日期时间)来做到这一点。同时,我需要分多个步骤来做,比如计算第 5 个截止日期,第 6 个...,所以我只是添加了次。在某些情况下,这两种方法提供不同的结果。NintervalintervalNstart_dateintervalstart_dateN

假设start_date= datetime(year=2019, month=1, day=2), interval= relativedelta(months=1, days=2), and N= 16。从一个角度来看,这两种方法都是正确的,因为interval*16= relativedelta(years =+1, 月=+4, 天=+32), start_date+16*interval= 2019-01-01 + 1 年 + 4 个月 + 32 天 = 2020/05/1 + 32 天 = 2020-06-02(因为 5 月有 31天)。同时,当我们将它们一一添加时,结果为 2020/05/1 + 1 个月 + 2 天 = 2020/06/02

问题与“月日溢出”有关,但我不知道如何处理。总是使用求和而不是乘法?但不是计算安全(想象第 9999999 个截止日期,间隔 = 1 天 1 秒)

重现步骤:

痕迹:

版本:Python 3.6 python-dateutil==2.8.0