add parsing request id command utility
This commit is contained in:
@@ -73,6 +73,24 @@ func ParseFromShortDateTime(t string, utcOffset int16) (time.Time, error) {
|
||||
return time.ParseInLocation(shortDateTimeFormat, t, timezone)
|
||||
}
|
||||
|
||||
func ParseFromElapsedSeconds(elapsedSeconds int) (string, error) {
|
||||
if elapsedSeconds < 0 || elapsedSeconds >= 86400 {
|
||||
return "", errs.ErrFormatInvalid
|
||||
}
|
||||
|
||||
second := elapsedSeconds % 60
|
||||
elapsedSeconds = elapsedSeconds - second
|
||||
elapsedSeconds = elapsedSeconds / 60
|
||||
|
||||
minute := elapsedSeconds % 60
|
||||
elapsedSeconds = elapsedSeconds - minute
|
||||
elapsedSeconds = elapsedSeconds / 60
|
||||
|
||||
hour := elapsedSeconds
|
||||
|
||||
return fmt.Sprintf("%02d:%02d:%02d", hour, minute, second), nil
|
||||
}
|
||||
|
||||
// IsUnixTimeEqualsYearAndMonth returns whether year and month of the unix time are equals to the specified year and month
|
||||
func IsUnixTimeEqualsYearAndMonth(unixTime int64, timezone *time.Location, year int32, month int32) bool {
|
||||
date := parseFromUnixTime(unixTime).In(timezone)
|
||||
|
||||
@@ -80,6 +80,41 @@ func TestParseFromShortDateTime(t *testing.T) {
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestParseFromElapsedSeconds(t *testing.T) {
|
||||
expectedValue := "00:00:00"
|
||||
actualValue, err := ParseFromElapsedSeconds(0)
|
||||
assert.Equal(t, nil, err)
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
|
||||
expectedValue = "00:00:09"
|
||||
actualValue, err = ParseFromElapsedSeconds(9)
|
||||
assert.Equal(t, nil, err)
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
|
||||
expectedValue = "00:01:08"
|
||||
actualValue, err = ParseFromElapsedSeconds(68)
|
||||
assert.Equal(t, nil, err)
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
|
||||
expectedValue = "01:00:07"
|
||||
actualValue, err = ParseFromElapsedSeconds(3607)
|
||||
assert.Equal(t, nil, err)
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
|
||||
expectedValue = "23:59:59"
|
||||
actualValue, err = ParseFromElapsedSeconds(86399)
|
||||
assert.Equal(t, nil, err)
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestParseFromElapsedSeconds_InvalidTime(t *testing.T) {
|
||||
_, err := ParseFromElapsedSeconds(-1)
|
||||
assert.NotEqual(t, nil, err)
|
||||
|
||||
_, err = ParseFromElapsedSeconds(86400)
|
||||
assert.NotEqual(t, nil, err)
|
||||
}
|
||||
|
||||
func TestIsUnixTimeEqualsYearAndMonth(t *testing.T) {
|
||||
actualValue := IsUnixTimeEqualsYearAndMonth(1691947440, time.UTC, 2023, 8)
|
||||
assert.Equal(t, true, actualValue)
|
||||
|
||||
Reference in New Issue
Block a user