Revision: 28350
          http://sourceforge.net/p/bibdesk/svn/28350
Author:   hofman
Date:     2023-09-18 08:59:49 +0000 (Mon, 18 Sep 2023)
Log Message:
-----------
set explicit dates for conditions to noon to allow for some wiggle room on 
timezone changes

Modified Paths:
--------------
    trunk/bibdesk/BDSKCondition.m
    trunk/bibdesk/NSDate_BDSKExtensions.h
    trunk/bibdesk/NSDate_BDSKExtensions.m

Modified: trunk/bibdesk/BDSKCondition.m
===================================================================
--- trunk/bibdesk/BDSKCondition.m       2023-09-17 21:39:57 UTC (rev 28349)
+++ trunk/bibdesk/BDSKCondition.m       2023-09-18 08:59:49 UTC (rev 28350)
@@ -564,6 +564,7 @@
 }
 
 - (void)setDateValue:(NSDate *)newDate {
+    newDate = [newDate startOfPeriod:BDSKPeriodDay byAdding:0 atHour:12 
minute:0 second:0];
     if (dateValue != newDate) {
         [dateValue release];
         dateValue = [newDate retain];
@@ -576,6 +577,7 @@
 }
 
 - (void)setToDateValue:(NSDate *)newDate {
+    newDate = [newDate startOfPeriod:BDSKPeriodDay byAdding:0 atHour:12 
minute:0 second:0];
     if (toDateValue != newDate) {
         [toDateValue release];
         toDateValue = [newDate retain];
@@ -755,7 +757,7 @@
         changed = YES;
     }
     
-    NSDate *fireDate = [[NSDate date] startOfPeriod:periodValue byAdding:1 
seconds:1];
+    NSDate *fireDate = [[NSDate date] startOfPeriod:periodValue byAdding:1 
atHour:0 minute:0 second:1];
     [cacheTimer invalidate];
     BDSKDESTROY(cacheTimer);
     cacheTimer = [[NSTimer alloc] initWithFireDate:fireDate interval:0.0 
target:self selector:@selector(refreshCachedDates:) userInfo:NULL repeats:NO];
@@ -776,7 +778,7 @@
     [self getStartDate:&startDate endDate:&endDate];
     if (dateComparison < BDSKDate && (startDate || endDate)) {
         // we fire 1 second past midnight after the end of the current period, 
because the condition changes at midnight
-        NSDate *fireDate = [[NSDate date] startOfPeriod:periodValue byAdding:1 
seconds:1];
+        NSDate *fireDate = [[NSDate date] startOfPeriod:periodValue byAdding:1 
atHour:0 minute:0 second:1];
         cacheTimer = [[NSTimer alloc] initWithFireDate:fireDate interval:0.0 
target:self selector:@selector(refreshCachedDates:) userInfo:NULL repeats:NO];
         [[NSRunLoop currentRunLoop] addTimer:cacheTimer 
forMode:NSDefaultRunLoopMode];
     }

Modified: trunk/bibdesk/NSDate_BDSKExtensions.h
===================================================================
--- trunk/bibdesk/NSDate_BDSKExtensions.h       2023-09-17 21:39:57 UTC (rev 
28349)
+++ trunk/bibdesk/NSDate_BDSKExtensions.h       2023-09-18 08:59:49 UTC (rev 
28350)
@@ -73,6 +73,6 @@
 
 - (NSDate *)startOfPeriod:(BDSKPeriod)period;
 - (NSDate *)startOfPeriod:(BDSKPeriod)period byAdding:(NSInteger)offset;
-- (NSDate *)startOfPeriod:(BDSKPeriod)period byAdding:(NSInteger)offset 
seconds:(NSInteger)seconds;
+- (NSDate *)startOfPeriod:(BDSKPeriod)period byAdding:(NSInteger)offset 
atHour:(NSInteger)hour minute:(NSInteger)minute second:(NSInteger)second;
 
 @end

Modified: trunk/bibdesk/NSDate_BDSKExtensions.m
===================================================================
--- trunk/bibdesk/NSDate_BDSKExtensions.m       2023-09-17 21:39:57 UTC (rev 
28349)
+++ trunk/bibdesk/NSDate_BDSKExtensions.m       2023-09-18 08:59:49 UTC (rev 
28350)
@@ -265,7 +265,7 @@
     return [formatter stringFromDate:self];
 }
 
-- (NSDate *)startOfPeriod:(BDSKPeriod)period byAdding:(NSInteger)offset 
seconds:(NSInteger)seconds {
+- (NSDate *)startOfPeriod:(BDSKPeriod)period byAdding:(NSInteger)offset 
atHour:(NSInteger)hour minute:(NSInteger)minute second:(NSInteger)second {
     NSCalendar *calendar = [NSCalendar currentCalendar];
     NSUInteger unitFlags;
     if (period == BDSKPeriodWeek)
@@ -274,9 +274,9 @@
         unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | 
NSCalendarUnitDay;
     NSDateComponents *components = [calendar components:unitFlags 
fromDate:self];
     
-    [components setHour:0];
-    [components setMinute:0];
-    [components setSecond:seconds];
+    [components setHour:hour];
+    [components setMinute:minute];
+    [components setSecond:second];
     
     switch (period) {
         case BDSKPeriodDay:
@@ -325,11 +325,11 @@
 }
 
 - (NSDate *)startOfPeriod:(BDSKPeriod)period byAdding:(NSInteger)offset {
-    return [self startOfPeriod:period byAdding:offset seconds:0];
+    return [self startOfPeriod:period byAdding:offset atHour:0 minute:0 
second:0];
 }
 
 - (NSDate *)startOfPeriod:(BDSKPeriod)period {
-    return [self startOfPeriod:period byAdding:0 seconds:0];
+    return [self startOfPeriod:period byAdding:0 atHour:0 minute:0 second:0];
 }
 
 @end

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

Reply via email to