为了计算月租金,我试图显示两个日期之间的差异,我期望月和日的确切数量,因为合同是“每月”的,所以如果是2月、3月或4月,每月的金额是固定的。比如说:Strat_D=05-Aug-2020 End_D=20-Sept-2020我用这个代码来计算天数:
DateDiff("d",[Start_D],[End_D])
输出为:45,但预期为:1个月
如果我使用:
DateDiff("m",[Start_D],[End_D])
输出为:1,但预期:1.5
提前谢谢
由于月份的天数不同,您必须按天计算以尽可能接近,因为没有确切的值(一个月内或7月/8月或12月/1月内除外):
' Returns the decimal count of months between Date1 and Date2.
'
' Rounds by default to two decimals, as more decimals has no meaning
' due to the varying count of days of a month.
' Optionally, don't round, by setting Round2 to False.
'
' 2017-01-24. Gustav Brock, Cactus Data ApS, CPH.
'
Public Function TotalMonths( _
ByVal Date1 As Date, _
ByVal Date2 As Date, _
Optional Round2 As Boolean = True) _
As Double
Dim Months As Double
Dim Part1 As Double
Dim Part2 As Double
Dim Fraction As Double
Dim Result As Double
Months = DateDiff("m", Date1, Date2)
Part1 = (Day(Date1) - 1) / DaysInMonth(Date1)
Part2 = (Day(Date2) - 1) / DaysInMonth(Date2)
If Round2 = True Then
' Round to two decimals.
Fraction = (-Part1 + Part2) * 100
Result = Months + Int(Fraction + 0.5) / 100
Else
Result = Months - Part1 + Part2
End If
TotalMonths = Result
End Function
' Returns the count of days of the month of Date1.
'
' 2016-02-14. Gustav Brock, Cactus Data ApS, CPH.
'
Public Function DaysInMonth( _
ByVal Date1 As Date) _
As Integer
Const MaxDateValue As Date = #12/31/9999#
Const MaxDayValue As Integer = 31
Dim Days As Integer
If DateDiff("m", Date1, MaxDateValue) = 0 Then
Days = MaxDayValue
Else
Days = Day(DateSerial(Year(Date1), Month(Date1) + 1, 0))
End If
DaysInMonth = Days
End Function
结果:
? TotalMonths(#2020/08/05#, #2020/09/20#)
1.5
? TotalMonths(#2020/11/15#, #2021/02/15#)
3.03
问题内容: 我想得到两个Java Date对象之间的区别。我使用了Joda-Time库。但是问题是我得到的天数差异大于实际的天数差异。 这是我的代码段: 这是我的输出: 在这里,为什么将“ 06/22/2010”设为1月22日?有人遇到类似的问题吗? 帮我朋友..提前感谢.. 问题答案: 月份是MM 在您的情况下: DateFormat formatter = new SimpleDateForm
我想计算2个月之间的差异,我不想考虑一个月是30天,并且以毫秒的时间来转换它们,我不想使用像焦达这样的库,我也找到了一个使用LoalDead的解决方案,但是我使用的是java 7。我寻找我的问题的答案,但找不到任何答案,我尝试了许多方法,我尝试创建一个日历,并以毫秒为单位传递我的两个日期之间的差异,但如果我尝试获取15/04和15/5之间的差异,我将得到30天,而不是1个月,下面是代码 我可以用什
问题内容: 我需要找到两个日期之间的天数:一个是来自报表,另一个是当前日期。我的片段: 这是一个私有方法,并且today是Date对象,仅供您说明。我关注了Java论坛中的两篇文章Thread 1 / Thread 2。 它在独立程序中可以正常工作,尽管当我将其包含在逻辑中以从报告中读取时,我会在值上获得不同寻常的区别。 为什么会发生,如何解决? 编辑: 与实际天数相比,我得到的天数更多。 问题答
问题内容: 我需要获取MySQL上几个日期中包含的天数。 例如: 入住日期是 离开日期 当天差是3 问题答案: 怎么样 DATEDIFF 功能? 引用手册页面: DATEDIFF()返回expr1 – expr2,表示为从一个日期到另一个日期的天数。expr1和expr2是日期或日期和时间表达式。在计算中仅使用值的日期部分 就您而言,您可以使用: 但是请注意,日期应写为,而不是您发布的日期。
我有两次约会。一个是以YYYYMMDD格式从其他应用程序的表中检索的,第二个日期是本地时间,我需要这两个日期之间的天数/月/年。 我试过了 但这给了我一些乱七八糟的数字。 变量$t=Fri Dec31 00:00:00 9999 变量$今天=Wed Feb19 14:40:55 2020 产出:25182094888 有什么想法吗?提前谢谢。
我需要得到以下两个日期之间的差异。两个日期都是字符串格式。