Find count of day differance between two dates

In golang there is no direct way [ atleast i don't know ] to find count of differance in days between two days. So, I do it the way might every one does [ except who has already faced this ].

Partial Solution

What I does is just find out duration differance of two dates using sub function.

differance := time.Now().Sub( startTime )
daysCount := int(differance.Hours() / 24.0)

It might seem ok. But, there is a problem with this solution. 

Let assume, startTime is 2018-02-02 23:59:59.  

In this case daysCount will be 0 on next day [ 2018-02-03 ] until time is 2018-02-03 23:59:59.

Perfect Solution

Simple solution is just normalize startTime to starting of that date.

normalizedTime := time.Date(startTime .Year(),startTime .Month(),startTime .Day(), 0, 0, 0, 0, time.Local)
differance := time.Now().Sub( normalizedTime )
daysCount := int(differance.Hours() / 24.0)

normalizedTime is startTime but at starting of date.

So, Now we are substracting time from 2018-02-02 00:00:00 instead of 2018-02-02 23:59:59


Post a Comment