MCPcopy Create free account
hub / github.com/SenseUnit/dumbproxy / dateRange

Function dateRange

jsext/dateutil.go:109–200  ·  view source on GitHub ↗
(params ...string)

Source from the content-addressed store, hash-verified

107}
108
109func dateRange(params ...string) bool {
110 now := time.Now()
111 if strings.ToUpper(params[len(params)-1]) == "GMT" {
112 now = now.UTC()
113 params = params[:len(params)-1] // Strip the GMT flag
114 }
115
116 currentDay := now.Day()
117 currentMonth := now.Month()
118 currentYear := now.Year()
119
120 isYear := func(s string) bool {
121 val, err := strconv.Atoi(s)
122 return err == nil && val > 31
123 }
124 isDay := func(s string) bool {
125 val, err := strconv.Atoi(s)
126 return err == nil && val >= 1 && val <= 31
127 }
128
129 switch len(params) {
130 case 1:
131 // Single parameter: True if current day/month/year matches it exactly
132 val := params[0]
133 if isYear(val) {
134 y, _ := strconv.Atoi(val)
135 return currentYear == y
136 }
137 if m, err := parseMonth(val); err == nil {
138 return currentMonth == m
139 }
140 if isDay(val) {
141 d, _ := strconv.Atoi(val)
142 return currentDay == d
143 }
144
145 case 2:
146 // Two parameters: Can be (day1, day2), (month1, month2), or (year1, year2)
147 p1, p2 := params[0], params[1]
148 if isYear(p1) && isYear(p2) {
149 y1, _ := strconv.Atoi(p1)
150 y2, _ := strconv.Atoi(p2)
151 return currentYear >= y1 && currentYear <= y2
152 }
153 m1, err1 := parseMonth(p1)
154 m2, err2 := parseMonth(p2)
155 if err1 == nil && err2 == nil {
156 return currentMonth >= m1 && currentMonth <= m2
157 }
158 if isDay(p1) && isDay(p2) {
159 d1, _ := strconv.Atoi(p1)
160 d2, _ := strconv.Atoi(p2)
161 return currentDay >= d1 && currentDay <= d2
162 }
163
164 case 4:
165 // Four parameters: Can be (day1, month1, day2, month2) or (month1, year1, month2, year2)
166 m1, err1 := parseMonth(params[0])

Callers 1

AddDateRangeFunction · 0.85

Calls 1

parseMonthFunction · 0.85

Tested by

no test coverage detected