tu

package module
v1.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 29, 2024 License: MIT Imports: 1 Imported by: 0

README

tu - Time Util package

tu is a time util for golang

go report card Go Reference MIT license

Install

go get github.com/iporsut/tu

Usage

Get datetime before or after specific datetime

import "github.com/iporsut/tu"

now := time.Date(2021, 12, 19, 20, 36, 30, 123456789, time.UTC)

tu.Tomorrow.Of(now)                           // 2021-12-20 20:36:30.123456789
tu.Yesterday.Of(now)                          // 2021-12-18 20:36:30.123456789
tu.BeginningOfDay.Of(now)                     // 2021-12-19 00:00:00
tu.EndOfDay.Of(now)                           // 2021-12-19 23:59:59.999999999
tu.BeginningOfMonth.Of(now)                   // 2021-12-01 00:00:00
tu.EndOfMonth.Of(now)                         // 2021-12-31 23:59:59.999999999
tu.BeginningOfYear.Of(now)                    // 2021-01-01 00:00:00
tu.EndOfYear.Of(now)                          // 2021-12-31 23:59:59.999999999

// Get datetime from N value duration
tu.N(2).SecondsAgo().Of(now)                  // 2021-12-19 20:36:28.123456789
tu.N(2).SecondsLater().Of(now)                // 2021-12-19 20:36:32.123456789
tu.N(2).MinutesAgo().Of(now)                  // 2021-12-19 20:34:30.123456789
tu.N(2).MinutesLater().Of(now)                // 2021-12-19 20:38:30.123456789
tu.N(2).HoursAgo().Of(now)                    // 2021-12-19 18:36:30.123456789
tu.N(2).HoursLater().Of(now)                  // 2021-12-19 22:36:30.123456789
tu.N(2).DaysAgo().Of(now)                     // 2021-12-17 20:36:30.123456789
tu.N(2).DaysLater().Of(now)                   // 2021-12-21 20:36:30.123456789
tu.N(2).MonthsAgo().Of(now)                   // 2019-10-19 20:36:30.123456789
tu.N(2).MonthsLater().Of(now)                 // 2022-02-19 20:36:30.123456789
tu.N(2).YearsAgo().Of(now)                    // 2019-12-19 20:36:30.123456789
tu.N(2).YearsLater().Of(now)                  // 2023-12-19 20:36:30.123456789

// Compose Time Function
tu.Tomorrow.Tomorrow().Of(now)                // 2021-12-21 20:36:30.123456789
tu.Yesterday.Yesterday().Of(now)              // 2021-12-17 20:36:30.123456789
tu.N(2).DaysAgo().BeginningOfDay().Of(now)    // 2021-12-17 00:00:00

Author

Weerasak Chongnguluam

License

Released under the MIT License.

Documentation

Overview

Package tu provides time utility functions to easily get time before or after of specific date time

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type N

type N = Num

N alias of Num

type Num

type Num int

Num provides method to easily get time before or after of specific date time with N number time duration

func (Num) DaysAgo

func (n Num) DaysAgo() TimeFunc

DaysAgo provides TimeFunc function to get n days ago

func (Num) DaysLater

func (n Num) DaysLater() TimeFunc

DaysLater provides TimeFunc function to get n days later

func (Num) HoursAgo

func (n Num) HoursAgo() TimeFunc

HoursAgo provides TimeFunc function to get n hours ago

func (Num) HoursLater

func (n Num) HoursLater() TimeFunc

HoursLater provides TimeFunc function to get n hours later

func (Num) MinutesAgo

func (n Num) MinutesAgo() TimeFunc

MinutesAgo provides TimeFunc function to get n minutes ago

func (Num) MinutesLater

func (n Num) MinutesLater() TimeFunc

MinutesLater provides TimeFunc function to get n minutes later

func (Num) MonthsAgo

func (n Num) MonthsAgo() TimeFunc

MonthsAgo provides TimeFunc function to get n months ago

func (Num) MonthsLater

func (n Num) MonthsLater() TimeFunc

MonthsLater provides TimeFunc function to get n months later

func (Num) SecondsAgo

func (n Num) SecondsAgo() TimeFunc

SecondsAgo provides TimeFunc function to get n seconds ago

func (Num) SecondsLater

func (n Num) SecondsLater() TimeFunc

SecondsLater provides TimeFunc function to get n seconds later

func (Num) YearsAgo

func (n Num) YearsAgo() TimeFunc

YearsAgo provides TimeFunc function to get n years ago

func (Num) YearsLater

func (n Num) YearsLater() TimeFunc

YearsLater provides TimeFunc function to get n years later

type TimeFunc

type TimeFunc func(time.Time) time.Time

TimeFunc types of time utility function provides methods to compose utility functions

var (
	// Yesterday get yesterday datetime of given datetime
	Yesterday TimeFunc = func(t time.Time) time.Time {
		return t.AddDate(0, 0, -1)
	}

	// Tomorrow get tomorrow datetime of given datetime
	Tomorrow TimeFunc = func(t time.Time) time.Time {
		return t.AddDate(0, 0, 1)
	}

	// BeginningOfDay get beginning of day of given datetime
	BeginningOfDay TimeFunc = func(t time.Time) time.Time {
		return time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location())
	}

	// EndOfDay get end of day of given datetime
	EndOfDay TimeFunc = func(t time.Time) time.Time {
		return time.Date(t.Year(), t.Month(), t.Day(), 23, 59, 59, 999999999, t.Location())
	}

	// BeginningOfMonth get beginning of month of given datetime
	BeginningOfMonth TimeFunc = func(t time.Time) time.Time {
		return time.Date(t.Year(), t.Month(), 1, 0, 0, 0, 0, t.Location())
	}

	// EndOfMonth get end of month of given datetime
	EndOfMonth TimeFunc = func(t time.Time) time.Time {
		tt := BeginningOfMonth(t).AddDate(0, 1, 0).AddDate(0, 0, -1)
		return time.Date(t.Year(), t.Month(), tt.Day(), 23, 59, 59, 999999999, t.Location())
	}

	// BeginningOfYear get beginning of year of given datetime
	BeginningOfYear TimeFunc = func(t time.Time) time.Time {
		return time.Date(t.Year(), 1, 1, 0, 0, 0, 0, t.Location())
	}

	// EndOfYear get end of year of given datetime
	EndOfYear TimeFunc = func(t time.Time) time.Time {
		return time.Date(t.Year(), 12, 31, 23, 59, 59, 999999999, t.Location())
	}
)

func (TimeFunc) BeginningOfDay

func (f TimeFunc) BeginningOfDay() TimeFunc

BeginningOfDay composes BeginningOfDay function with f TimeFunc function

func (TimeFunc) BeginningOfMonth

func (f TimeFunc) BeginningOfMonth() TimeFunc

BeginningOfMonth composes BeginningOfMonth function with f TimeFunc function

func (TimeFunc) BeginningOfYear

func (f TimeFunc) BeginningOfYear() TimeFunc

BeginningOfYear composes BeginningOfYear function with f TimeFunc function

func (TimeFunc) EndOfDay

func (f TimeFunc) EndOfDay() TimeFunc

EndOfDay composes EndOfDay function with f TimeFunc function

func (TimeFunc) EndOfMonth

func (f TimeFunc) EndOfMonth() TimeFunc

EndOfMonth composes EndOfMonth function with f TimeFunc function

func (TimeFunc) EndOfYear

func (f TimeFunc) EndOfYear() TimeFunc

EndOfYear composes EndOfYear function with f TimeFunc function

func (TimeFunc) Of

func (f TimeFunc) Of(t time.Time) time.Time

Of apply f TimeFunc function with given datetime

func (TimeFunc) Tomorrow

func (f TimeFunc) Tomorrow() TimeFunc

Tomorrow composes Tomorrow function with f TimeFunc function

func (TimeFunc) Yesterday

func (f TimeFunc) Yesterday() TimeFunc

Yesterday composes Yesterday function with f TimeFunc function

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL