File tree Expand file tree Collapse file tree 3 files changed +20
-12
lines changed Expand file tree Collapse file tree 3 files changed +20
-12
lines changed Original file line number Diff line number Diff line change @@ -106,8 +106,11 @@ func (c *Carbon) StartOfWeek() *Carbon {
106
106
if c .IsInvalid () {
107
107
return c
108
108
}
109
- dayOfWeek , weekStartsAt := c .DayOfWeek (), int (c .weekStartsAt )
110
- return c .SubDays ((DaysPerWeek + dayOfWeek - weekStartsAt ) % DaysPerWeek ).StartOfDay ()
109
+ dayOfWeek , weekStartsAt := c .StdTime ().Weekday (), c .WeekStartsAt ()
110
+ if dayOfWeek == weekStartsAt {
111
+ return c .StartOfDay ()
112
+ }
113
+ return c .SubDays (int (DaysPerWeek + dayOfWeek - weekStartsAt ) % DaysPerWeek ).StartOfDay ()
111
114
}
112
115
113
116
// EndOfWeek returns a Carbon instance for end of the week.
@@ -116,8 +119,11 @@ func (c *Carbon) EndOfWeek() *Carbon {
116
119
if c .IsInvalid () {
117
120
return c
118
121
}
119
- dayOfWeek , weekEndsAt := c .DayOfWeek (), int (c .weekStartsAt )+ DaysPerWeek - 1
120
- return c .AddDays ((DaysPerWeek - dayOfWeek + weekEndsAt ) % DaysPerWeek ).EndOfDay ()
122
+ dayOfWeek , weekEndsAt := c .StdTime ().Weekday (), c .WeekEndsAt ()
123
+ if dayOfWeek == weekEndsAt {
124
+ return c .EndOfDay ()
125
+ }
126
+ return c .AddDays (int (DaysPerWeek - dayOfWeek + weekEndsAt ) % DaysPerWeek ).EndOfDay ()
121
127
}
122
128
123
129
// StartOfDay returns a Carbon instance for start of the day.
Original file line number Diff line number Diff line change @@ -143,10 +143,10 @@ func ExampleCarbon_StartOfWeek() {
143
143
fmt .Println (carbon .Parse ("2020-12-31 23:59:59" ).StartOfWeek ().ToString ())
144
144
145
145
// Output:
146
- // 0000-12-31 00:00:00 +0000 UTC
147
- // 2019-12-29 00:00:00 +0000 UTC
148
- // 2020-08-09 00:00:00 +0000 UTC
149
- // 2020-12-27 00:00:00 +0000 UTC
146
+ // 0001-01-01 00:00:00 +0000 UTC
147
+ // 2019-12-30 00:00:00 +0000 UTC
148
+ // 2020-08-10 00:00:00 +0000 UTC
149
+ // 2020-12-28 00:00:00 +0000 UTC
150
150
}
151
151
152
152
func ExampleCarbon_EndOfWeek () {
@@ -156,10 +156,10 @@ func ExampleCarbon_EndOfWeek() {
156
156
fmt .Println (carbon .Parse ("2020-12-31 23:59:59" ).EndOfWeek ().ToString ())
157
157
158
158
// Output:
159
- // 0001-01-06 23:59:59.999999999 +0000 UTC
160
- // 2020-01-04 23:59:59.999999999 +0000 UTC
161
- // 2020-08-15 23:59:59.999999999 +0000 UTC
162
- // 2021-01-02 23:59:59.999999999 +0000 UTC
159
+ // 0001-01-07 23:59:59.999999999 +0000 UTC
160
+ // 2020-01-05 23:59:59.999999999 +0000 UTC
161
+ // 2020-08-16 23:59:59.999999999 +0000 UTC
162
+ // 2021-01-03 23:59:59.999999999 +0000 UTC
163
163
}
164
164
165
165
func ExampleCarbon_StartOfDay () {
Original file line number Diff line number Diff line change @@ -201,6 +201,7 @@ func TestCarbon_StartOfWeek(t *testing.T) {
201
201
assert .Equal (t , "2019-12-30 00:00:00 +0000 UTC" , Parse ("2020-01-01 00:00:00" ).StartOfWeek ().ToString ())
202
202
assert .Equal (t , "2020-08-10 00:00:00 +0000 UTC" , Parse ("2020-08-15 12:30:30" ).StartOfWeek ().ToString ())
203
203
assert .Equal (t , "2020-12-28 00:00:00 +0000 UTC" , Parse ("2020-12-31 23:59:59" ).StartOfWeek ().ToString ())
204
+ assert .Equal (t , "2025-04-07 00:00:00 +0000 UTC" , Parse ("2025-04-07 00:00:00" ).StartOfWeek ().ToString ())
204
205
})
205
206
}
206
207
@@ -219,6 +220,7 @@ func TestCarbon_EndOfWeek(t *testing.T) {
219
220
assert .Equal (t , "2020-01-05 23:59:59.999999999 +0000 UTC" , Parse ("2020-01-01 00:00:00" ).EndOfWeek ().ToString ())
220
221
assert .Equal (t , "2020-08-16 23:59:59.999999999 +0000 UTC" , Parse ("2020-08-15 12:30:30" ).EndOfWeek ().ToString ())
221
222
assert .Equal (t , "2021-01-03 23:59:59.999999999 +0000 UTC" , Parse ("2020-12-31 23:59:59" ).EndOfWeek ().ToString ())
223
+ assert .Equal (t , "2025-04-13 23:59:59.999999999 +0000 UTC" , Parse ("2025-04-13 00:00:00" ).EndOfWeek ().ToString ())
222
224
})
223
225
}
224
226
You can’t perform that action at this time.
0 commit comments