Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 2015年前一天午夜的日期_Objective C_Cocoa_Date_Nsdate_Nscalendar - Fatal编程技术网

Objective c 2015年前一天午夜的日期

Objective c 2015年前一天午夜的日期,objective-c,cocoa,date,nsdate,nscalendar,Objective C,Cocoa,Date,Nsdate,Nscalendar,我正在设置一个具体日期,方法是取月份开始日期,即2015-01-01 00:00:00+0000,然后在“基准”日期上加上天数,以获得我所需的日期。我重复这个过程是为了在未来的n年里建立一个月的“集合”。这里有一些代码,顺便说一句,我正在使用非常有用的NSDate+护送类别: self.startDate = [[[self.startDate dateAtStartOfMonth] dateByAddingMonths:1 ] dateAtStartOfDay]; 这是我的“基准”日期,即-

我正在设置一个具体日期,方法是取月份开始日期,即2015-01-01 00:00:00+0000,然后在“基准”日期上加上天数,以获得我所需的日期。我重复这个过程是为了在未来的n年里建立一个月的“集合”。这里有一些代码,顺便说一句,我正在使用非常有用的NSDate+护送类别:

self.startDate = [[[self.startDate dateAtStartOfMonth] dateByAddingMonths:1 ] dateAtStartOfDay];
这是我的“基准”日期,即-2015-01-01 00:00:00+0000

self.startDate = [self.startDate dateByAddingDays:20];
在本例中,此添加为20天,因此我的新日期为-2015-01-21 00:00:00+0000

self.startDate = [self.startDate dateByAddingDays:20];
完整代码

// get to start of next month.
        self.startDate = [[[self.startDate dateAtStartOfMonth] dateByAddingMonths:1 ] dateAtStartOfDay];

        // check if month is shorter than start day index (ie february only has 28 days)
        // if it is, then set date to end of month, else set day as normal
        if ([self.startDateDayIndex integerValue] > [self.startDate daysInMonth]) {
            self.startDate = [self.startDate dateAtEndOfMonth];
        }
        else{
            //self.startDate = [self.startDate dateByAddingDays:[self.startDateDayIndex integerValue] - 1];
            self.startDate = [self.startDate dateByAddingDays:5];
        }
在我到达2015年2月之前,一切都很顺利,在这之后,我的新约会总是落后一天,所以是20号而不是21号

更奇怪的是,一旦我过了2016年2月,一切又恢复正常。几个小时来,我一直在绞尽脑汁想弄清楚到底发生了什么事。明年不是闰年,我现在真的很难理解这一年

有没有人经历过这种情况,可以帮我解决这个问题

此后,我在一个新项目中做了更多的测试,只需创建一个日期,将其存储在CoreData中,并使用NSCalendar和NSdateComponents递增地添加1个月。在2015年3月到2016年3月之间,我仍然会遇到同样的问题,即损失一天


我已经开始了一个新的问题,这是更相关的,并剥夺了NSDate+护送,希望它将更有益于其他读者。干杯

两个字。闰年。不清楚你想做什么。请给我们一些您正在使用的数字的实际示例。我们中很少有人使用过护送,所以请不要在这方面做文章。另外,不要忘了夏令时。我自己无法复制这一点,即使使用NSDate+护送类别,您能提供一个完整的代码示例吗?