v0.0.509
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 6m2s
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 6m2s
This commit is contained in:
@@ -2,6 +2,9 @@ package timeext
|
||||
|
||||
import "time"
|
||||
|
||||
// YearDifference calculates the difference between two timestamps in years.
|
||||
// = t1 - t2
|
||||
// returns a float value
|
||||
func YearDifference(t1 time.Time, t2 time.Time, tz *time.Location) float64 {
|
||||
|
||||
yDelta := float64(t1.Year() - t2.Year())
|
||||
@@ -11,3 +14,31 @@ func YearDifference(t1 time.Time, t2 time.Time, tz *time.Location) float64 {
|
||||
|
||||
return yDelta + (processT1 - processT2)
|
||||
}
|
||||
|
||||
// MonthDifference calculates the difference between two timestamps in months.
|
||||
// = t1 - t2
|
||||
// returns a float value
|
||||
func MonthDifference(t1 time.Time, t2 time.Time) float64 {
|
||||
|
||||
yDelta := float64(t1.Year() - t2.Year())
|
||||
mDelta := float64(t1.Month() - t2.Month())
|
||||
|
||||
dDelta := float64(0)
|
||||
|
||||
t1MonthDays := DaysInMonth(t1)
|
||||
t2MonthDays := DaysInMonth(t2)
|
||||
|
||||
if t2.Year() > t1.Year() || (t2.Year() == t1.Year() && t2.Month() > t1.Month()) {
|
||||
dDelta -= 1
|
||||
dDelta += float64(t1MonthDays-t1.Day()) / float64(t1MonthDays)
|
||||
dDelta += float64(t2.Day()) / float64(t2MonthDays)
|
||||
} else if t2.Year() < t1.Year() || (t2.Year() == t1.Year() && t2.Month() < t1.Month()) {
|
||||
dDelta -= 1
|
||||
dDelta += float64(t1.Day()) / float64(t1MonthDays)
|
||||
dDelta += float64(t2MonthDays-t2.Day()) / float64(t2MonthDays)
|
||||
} else {
|
||||
dDelta += float64(t1.Day()-t2.Day()) / float64(t1MonthDays)
|
||||
}
|
||||
|
||||
return yDelta*12 + mDelta + dDelta
|
||||
}
|
||||
|
Reference in New Issue
Block a user