Revision: 28343
http://sourceforge.net/p/bibdesk/svn/28343
Author: hofman
Date: 2023-09-13 22:51:58 +0000 (Wed, 13 Sep 2023)
Log Message:
-----------
workaround for start of week for first partial week of the year, which is
wrongly set to 52 rather than 0
Modified Paths:
--------------
trunk/bibdesk/NSDate_BDSKExtensions.m
Modified: trunk/bibdesk/NSDate_BDSKExtensions.m
===================================================================
--- trunk/bibdesk/NSDate_BDSKExtensions.m 2023-09-13 17:07:35 UTC (rev
28342)
+++ trunk/bibdesk/NSDate_BDSKExtensions.m 2023-09-13 22:51:58 UTC (rev
28343)
@@ -268,21 +268,31 @@
- (NSDate *)startOfPeriod:(BDSKPeriod)period {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit;
- unitFlags |= period == BDSKPeriodWeek ? NSWeekCalendarUnit :
NSDayCalendarUnit;
+ unitFlags |= period == BDSKPeriodWeek ? NSWeekOfYearCalendarUnit |
NSWeekdayCalendarUnit : NSDayCalendarUnit;
NSDateComponents *components = [calendar components:unitFlags
fromDate:self];
NSDateComponents *weekOffset = nil;
- // workaround for a known bug, week is 1 for last week of the year
- if (period == BDSKPeriodWeek && [components weekOfYear] == 1 &&
[components month] > 1) {
- components = [calendar components:unitFlags fromDate:[self
dateByAddingTimeInterval:-7 * 24 * 3600]];
- weekOffset = [[[NSDateComponents alloc] init] autorelease];
- [weekOffset setWeekday:0];
- [weekOffset setWeekOfYear:-1];
- [weekOffset setDay:NSUndefinedDateComponent];
- [weekOffset setMonth:NSUndefinedDateComponent];
- [weekOffset setYear:0];
- components = [calendar components:unitFlags fromDate:[calendar
dateByAddingComponents:weekOffset toDate:self options:0]];
- [weekOffset setWeekOfYear:1];
+ // workaround for a known bug, week is 1 for last week of the year, or 52
for the first week of the year
+ if (period == BDSKPeriodWeek) {
+ if ([components weekOfYear] == 1 && [components month] > 1) {
+ weekOffset = [[[NSDateComponents alloc] init] autorelease];
+ [weekOffset setWeekday:0];
+ [weekOffset setWeekOfYear:-1];
+ [weekOffset setDay:NSUndefinedDateComponent];
+ [weekOffset setMonth:NSUndefinedDateComponent];
+ [weekOffset setYear:0];
+ components = [calendar components:unitFlags fromDate:[calendar
dateByAddingComponents:weekOffset toDate:self options:0]];
+ [weekOffset setWeekOfYear:1];
+ } else if ([components month] == 1 && [components weekOfYear] > 6) {
+ weekOffset = [[[NSDateComponents alloc] init] autorelease];
+ [weekOffset setWeekday:0];
+ [weekOffset setWeekOfYear:1];
+ [weekOffset setDay:NSUndefinedDateComponent];
+ [weekOffset setMonth:NSUndefinedDateComponent];
+ [weekOffset setYear:0];
+ components = [calendar components:unitFlags fromDate:[calendar
dateByAddingComponents:weekOffset toDate:self options:0]];
+ [weekOffset setWeekOfYear:-1];
+ }
}
[components setHour:0];
[components setMinute:0];
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit