|
61 | 61 | if reverse {
|
62 | 62 | delta = -time.Second
|
63 | 63 | }
|
64 |
| - next, _, err = bumpUntilDue(gron.C, segments[0], 0, next.Add(delta), reverse) |
| 64 | + next = next.Add(delta) |
65 | 65 | continue
|
66 | 66 | }
|
67 | 67 | return
|
@@ -118,44 +118,45 @@ func bump(ref time.Time, pos int, reverse bool) time.Time {
|
118 | 118 | if reverse {
|
119 | 119 | factor = -1
|
120 | 120 | }
|
| 121 | + loc := ref.Location() |
121 | 122 |
|
122 | 123 | switch pos {
|
123 | 124 | case 0:
|
124 | 125 | ref = ref.Add(time.Duration(factor) * time.Second)
|
125 | 126 | case 1:
|
126 | 127 | minTime := ref.Add(time.Duration(factor) * time.Minute)
|
127 | 128 | if reverse {
|
128 |
| - ref = time.Date(minTime.Year(), minTime.Month(), minTime.Day(), minTime.Hour(), minTime.Minute(), 59, 0, minTime.Location()) |
| 129 | + ref = time.Date(minTime.Year(), minTime.Month(), minTime.Day(), minTime.Hour(), minTime.Minute(), 59, 0, loc) |
129 | 130 | } else {
|
130 |
| - ref = time.Date(minTime.Year(), minTime.Month(), minTime.Day(), minTime.Hour(), minTime.Minute(), 0, 0, minTime.Location()) |
| 131 | + ref = time.Date(minTime.Year(), minTime.Month(), minTime.Day(), minTime.Hour(), minTime.Minute(), 0, 0, loc) |
131 | 132 | }
|
132 | 133 | case 2:
|
133 | 134 | hTime := ref.Add(time.Duration(factor) * time.Hour)
|
134 | 135 | if reverse {
|
135 |
| - ref = time.Date(hTime.Year(), hTime.Month(), hTime.Day(), hTime.Hour(), 59, 59, 0, hTime.Location()) |
| 136 | + ref = time.Date(hTime.Year(), hTime.Month(), hTime.Day(), hTime.Hour(), 59, 59, 0, loc) |
136 | 137 | } else {
|
137 |
| - ref = time.Date(hTime.Year(), hTime.Month(), hTime.Day(), hTime.Hour(), 0, 0, 0, hTime.Location()) |
| 138 | + ref = time.Date(hTime.Year(), hTime.Month(), hTime.Day(), hTime.Hour(), 0, 0, 0, loc) |
138 | 139 | }
|
139 | 140 | case 3, 5:
|
140 | 141 | dTime := ref.AddDate(0, 0, factor)
|
141 | 142 | if reverse {
|
142 |
| - ref = time.Date(dTime.Year(), dTime.Month(), dTime.Day(), 23, 59, 59, 0, dTime.Location()) |
| 143 | + ref = time.Date(dTime.Year(), dTime.Month(), dTime.Day(), 23, 59, 59, 0, loc) |
143 | 144 | } else {
|
144 |
| - ref = time.Date(dTime.Year(), dTime.Month(), dTime.Day(), 0, 0, 0, 0, dTime.Location()) |
| 145 | + ref = time.Date(dTime.Year(), dTime.Month(), dTime.Day(), 0, 0, 0, 0, loc) |
145 | 146 | }
|
146 | 147 | case 4:
|
147 |
| - mTime := ref.AddDate(0, factor, 0) |
| 148 | + ref = time.Date(ref.Year(), ref.Month(), 1, 0, 0, 0, 0, loc) |
148 | 149 | if reverse {
|
149 |
| - ref = time.Date(mTime.Year(), ref.Month(), -1, 23, 59, 59, 0, mTime.Location()) |
| 150 | + ref = ref.Add(time.Duration(factor) * time.Second) |
150 | 151 | } else {
|
151 |
| - ref = time.Date(mTime.Year(), mTime.Month(), 1, 0, 0, 0, 0, mTime.Location()) |
| 152 | + ref = ref.AddDate(0, factor, 0) |
152 | 153 | }
|
153 | 154 | case 6:
|
154 | 155 | yTime := ref.AddDate(factor, 0, 0)
|
155 | 156 | if reverse {
|
156 |
| - ref = time.Date(yTime.Year(), 12, 31, 23, 59, 59, 0, yTime.Location()) |
| 157 | + ref = time.Date(yTime.Year(), 12, 31, 23, 59, 59, 0, loc) |
157 | 158 | } else {
|
158 |
| - ref = time.Date(yTime.Year(), 1, 1, 0, 0, 0, 0, yTime.Location()) |
| 159 | + ref = time.Date(yTime.Year(), 1, 1, 0, 0, 0, 0, loc) |
159 | 160 | }
|
160 | 161 | }
|
161 | 162 | return ref
|
|
0 commit comments