Skip to content

Commit ebe8448

Browse files
author
Scott Petit
committed
Fix SR-3193 by using timeIntervalSince1970 and adds tests
1 parent 1db5065 commit ebe8448

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

Foundation/NSCalendar.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -974,7 +974,7 @@ open class NSCalendar : NSObject, NSCopying, NSSecureCoding {
974974
This API reports if the date is within a weekend period, as defined by the calendar and calendar's locale.
975975
*/
976976
open func isDateInWeekend(_ date: Date) -> Bool {
977-
return _CFCalendarIsWeekend(_cfObject, date.timeIntervalSinceReferenceDate)
977+
return _CFCalendarIsWeekend(_cfObject, date.timeIntervalSince1970)
978978
}
979979

980980
/// Revised API for avoiding usage of AutoreleasingUnsafeMutablePointer.

TestFoundation/TestNSCalendar.swift

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ class TestNSCalendar: XCTestCase {
2626
("test_gettingDatesOnChineseCalendar", test_gettingDatesOnChineseCalendar),
2727
("test_gettingDatesOnISO8601Calendar", test_gettingDatesOnISO8601Calendar),
2828
("test_copy",test_copy),
29-
("test_addingDates", test_addingDates)
29+
("test_addingDates", test_addingDates),
30+
("test_datesNotOnWeekend", test_datesNotOnWeekend),
31+
("test_datesOnWeekend", test_datesOnWeekend)
3032
// Disabled because this fails on linux https://bugs.swift.org/browse/SR-320
3133
// ("test_currentCalendarRRstability", test_currentCalendarRRstability),
3234
]
@@ -141,6 +143,20 @@ class TestNSCalendar: XCTestCase {
141143
XCTAssertEqual(dayAfterComponents.month, 10)
142144
XCTAssertEqual(dayAfterComponents.day, 5)
143145
}
146+
147+
func test_datesNotOnWeekend() {
148+
let calendar = Calendar(identifier: .gregorian)
149+
let wednesdayInFebruary = calendar.date(from: DateComponents(year: 2016, month: 2, day: 17))!
150+
151+
XCTAssertFalse(calendar.isDateInWeekend(wednesdayInFebruary))
152+
}
153+
154+
func test_datesOnWeekend() {
155+
let calendar = Calendar(identifier: .gregorian)
156+
let sundayInFebruary = calendar.date(from: DateComponents(year: 2016, month: 2, day: 14))!
157+
158+
XCTAssertTrue(calendar.isDateInWeekend(sundayInFebruary))
159+
}
144160
}
145161

146162
class TestNSDateComponents: XCTestCase {

0 commit comments

Comments
 (0)