selfcheer
2024-07-19 1572f45e72cc0fa15c029f9ee2a08474104435e6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package utils
 
import (
    "time"
)
 
func StringToTime(timeStr string) (time.Time, error) {
    return time.ParseInLocation("2006-01-02 15:04:05", timeStr, time.Local)
}
 
func StringToTime2(timeStr string) (time.Time, error) {
    return time.ParseInLocation("2006-01-02", timeStr, time.Local)
}
 
func StringToTime3(timeStr string) (time.Time, error) {
    return time.ParseInLocation("2006-01-02 15:04", timeStr, time.Local)
}
 
func StringToClock(timeStr string) (time.Time, error) {
    return time.ParseInLocation("15:04", timeStr, time.Local)
}
 
func TimeToString(time time.Time) string {
    return time.Format("2006-01-02 15:04:05")
}
 
func TimeToString2(time time.Time) string {
    return time.Format("2006-01-02")
}
 
func TimeToString3(time time.Time) string {
    return time.Format("15:04")
}
 
func TimeToMonthDay(time time.Time) string {
    return time.Format("01-02")
}
 
func UnixTimeToString(_t int64) string {
    return time.Unix(_t, 0).In(time.Local).Format("2006-01-02 15:04:05")
}
func UnixTimeToDate(_t int64) string {
    return time.Unix(_t, 0).In(time.Local).Format("2006-01-02")
}
 
func DayStartTime(_t int64) int64 {
    l := time.Unix(_t, 0).In(time.Local)
    k := time.Date(l.Year(), l.Month(), l.Day(), 0, 0, 0, 0, time.Local).Unix()
    return k
}
 
func DayStart(_t time.Time) time.Time {
    l := _t.In(time.Local)
    k := time.Date(l.Year(), l.Month(), l.Day(), 0, 0, 0, 0, time.Local)
    return k
}
 
func DayStartTimeDateStr(_t int64) string {
    l := time.Unix(_t, 0).In(time.Local)
    k := time.Date(l.Year(), l.Month(), l.Day(), 0, 0, 0, 0, time.Local)
    return TimeToString2(k)
}
 
const timeLayout = "2006-01-02 15:04:05"
 
func GetCurrentTime() string {
    return time.Now().Format(timeLayout)
}
 
// WeekdayCount 根据开始时间戳,结束时间戳(不含)返回工作日天数
func WeekdayCount(startTs, endTs int64) (workDays int64) {
    for startTs < endTs {
        startDate := time.Unix(startTs, 0).In(time.Local)
        weekday := startDate.Weekday()
        if weekday >= time.Monday && weekday <= time.Friday {
            workDays++
        }
        startTs += 86400
    }
    return workDays
}
 
func TodayStartTime() time.Time {
    l := time.Now().In(time.Local)
    k := time.Date(l.Year(), l.Month(), l.Day(), 0, 0, 0, 0, time.Local)
    return k
}
 
func TodayStartTs() int64 {
    return TodayStartTime().Unix()
}