java - python中两天的日期差异(从JAVA代码迁移)
问题描述
我在 JAVA 中有一个代码:
公共类函数1 {
public long daysBetween(LocalDateTime dt1, LocalDateTime dt2) {
return timeDiffInGivenUnits(dt1, dt2, ChronoUnit.DAYS) ;
}
public long weeksBetween(LocalDateTime dt1, LocalDateTime dt2) {
return timeDiffInGivenUnits(dt1, dt2, ChronoUnit.WEEKS) ;
}
public long monthsBetween(LocalDateTime dt1, LocalDateTime dt2) {
return timeDiffInGivenUnits(dt1, dt2, ChronoUnit.MONTHS) ;
}
public long yearsBetween(LocalDateTime dt1, LocalDateTime dt2) {
return timeDiffInGivenUnits(dt1, dt2, ChronoUnit.YEARS) ;
}
private long timeDiffInGivenUnits(LocalDateTime dt1, LocalDateTime dt2, ChronoUnit unit) {
long daysBetween = 0l ;
return daysBetween ;
}
}
这个的python代码是什么?
解决方案
从您添加的答案中,您可以将函数组合为具有通用单元,作为您的第 5 个函数,如下所示。
class FsFunction:
def days_between(self, d1: datetime, d2: datetime):
r = relativedelta.relativedelta(d1, d2)
return r.days
def weeks_between(self, d1: datetime, d2: datetime):
r = relativedelta.relativedelta(d1, d2)
return r.weeks
def months_between(self, d1: datetime, d2: datetime):
r = relativedelta.relativedelta(d1, d2)
return r.months
def years_between(self, d1: datetime, d2: datetime):
r = relativedelta.relativedelta(d1, d2)
return r.years
def units_between(self, d1: datetime, d2: datetime, unit):
if unit=="days":
return self.days_between(d1,d2)
elif unit=="weeks":
return self.weeks_between(d1,d2)
elif unit=="months":
return self.months_between(d1,d2)
elif unit=="years":
return self.years_between(d1,d2)
else:
return None
推荐阅读
- python - Spark如何将(键值列表)拆分为键值对
- android - Android:在ConstraintLayout中保持全宽和未定义高度ImageView的比例?
- f# - F#序列
> 转换为字符串 - python - 我如何安装点子
- c# - 实体框架核心事务中的多个 SaveChanges 有什么意义?
- php - 如何在codeigniter中使用下拉菜单过滤数据
- javascript - 从 node.js 调用 R 脚本问题加载库
- authentication - 如何仅使用访问令牌访问 keycloak 的“/realm/account”页面
- aws-lambda - 在 Netlify Lambda 上运行 puppeteer
- python - 使用 bs4 从 HTML 中提取特定值