code refactor

This commit is contained in:
MaysWind
2024-04-04 20:42:40 +08:00
parent 46caf46ef7
commit 28f113d992
3 changed files with 27 additions and 7 deletions
+17
View File
@@ -177,6 +177,23 @@ func GetUnixTimeFromTransactionTime(transactionTime int64) int64 {
return transactionTime / 1000
}
// GetTransactionTimeRangeByYearMonth returns the transaction time range by specified year and month
func GetTransactionTimeRangeByYearMonth(year int32, month int32) (int64, int64, error) {
startMinUnixTime, err := ParseFromLongDateTimeToMinUnixTime(fmt.Sprintf("%d-%02d-01 00:00:00", year, month))
startMaxUnixTime, err := ParseFromLongDateTimeToMaxUnixTime(fmt.Sprintf("%d-%02d-01 00:00:00", year, month))
if err != nil {
return 0, 0, err
}
endMaxUnixTime := startMaxUnixTime.AddDate(0, 1, 0)
minTransactionTime := GetMinTransactionTimeFromUnixTime(startMinUnixTime.Unix())
maxTransactionTime := GetMinTransactionTimeFromUnixTime(endMaxUnixTime.Unix()) - 1
return minTransactionTime, maxTransactionTime, nil
}
// parseFromUnixTime parses a unix time and returns a golang time struct
func parseFromUnixTime(unixTime int64) time.Time {
return time.Unix(unixTime, 0)
+9
View File
@@ -216,6 +216,15 @@ func TestGetUnixTimeFromTransactionTime(t *testing.T) {
assert.Equal(t, expectedValue, actualValue)
}
func TestGetTransactionTimeRangeByYearMonth(t *testing.T) {
expectedMinValue := int64(1704016800000)
expectedMaxValue := int64(1706788799999)
actualMinValue, actualMaxValue, err := GetTransactionTimeRangeByYearMonth(2024, 1)
assert.Equal(t, nil, err)
assert.Equal(t, expectedMinValue, actualMinValue)
assert.Equal(t, expectedMaxValue, actualMaxValue)
}
func TestParseFromUnixTime(t *testing.T) {
expectedValue := int64(1617228083)
actualTime := parseFromUnixTime(expectedValue)