gpt4 book ai didi

iphone - 如何在 iPhone 中查找本周的最后一天?

转载 作者:行者123 更新时间:2023-12-03 19:46:59 24 4
gpt4 key购买 nike

在我的应用程序中,我使用以下代码来检索当前日期和日期:

NSDate *today1 = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd/MM/yyyy :EEEE"];
NSString *dateString11 = [dateFormat stringFromDate:today1];

NSLog(@"date: %@", dateString11);
//[dateFormat release];
NSCalendar *gregorian11 = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components1 = [gregorian11 components:NSWeekdayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:today1];
[components1 setDay:([components1 day]-([components1 weekday]-1))];

NSDate *beginningOfWeek1 = [gregorian11 dateFromComponents:components1];
NSDateFormatter *dateFormat_first = [[NSDateFormatter alloc] init];
[dateFormat_first setDateFormat:@"dd/MM/yyyy :EEEE"];
NSString *dateString_first = [dateFormat_first stringFromDate:beginningOfWeek1];

NSLog(@"First_date: %@", dateString_first);

但是使用上面的代码我只得到了当前日期和日期以及一周的第一天,但​​我需要获取一周的最后一天。

我的代码哪里错了,需要进行哪些修改才能获取最后一天/一周的日期?

最佳答案

对我来说这有效:

计算一周的第一天

NSDate *today = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *weekdayComponents = [gregorian components:NSWeekdayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit fromDate:today];

计算从今天减去的天数,以获得一周的第一天。在本例中,一周的第一天是星期一。首先用工作日整数减去 0,然后向 setDay 添加 2。

周日 = 1、周一 = 2、周二 = 3、周三 = 4、周四 = 5、周五 = 6 和周六 = 7。通过向这些整数添加更多,您将进入下周。

NSDateComponents *componentsToSubtract  = [[NSDateComponents alloc] init];
[componentsToSubtract setDay: (0 - [weekdayComponents weekday]) + 2];
[componentsToSubtract setHour: 0 - [weekdayComponents hour]];
[componentsToSubtract setMinute: 0 - [weekdayComponents minute]];
[componentsToSubtract setSecond: 0 - [weekdayComponents second]];

创建一周第一天的日期

NSDate *beginningOfWeek = [gregorian dateByAddingComponents:componentsToSubtract toDate:today options:0];

通过将第一天的日期加 6,我们可以获得最后一天,在我们的示例中是星期日。

NSDateComponents *componentsToAdd = [gregorian components:NSDayCalendarUnit fromDate:beginningOfWeek];
[componentsToAdd setDay:6];
NSDate *endOfWeek = [gregorian dateByAddingComponents:componentsToAdd toDate:beginningOfWeek options:0];

希望这有帮助

关于iphone - 如何在 iPhone 中查找本周的最后一天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2719235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com