Мне нужно получить будний день в первый день месяца. Например, за текущий месяц сентябрь 2013 года первый день приходится на воскресенье.Неделя дня первого месяца месяца
4
A
ответ
8
В первый, получить первый день текущего месяца (например):
NSDate *today = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorian components:(NSEraCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit) fromDate:today];
components.day = 1;
NSDate *firstDayOfMonth = [gregorian dateFromComponents:components];
Затем используйте NSDateFormatter для печати как в будний день:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEEE"];
NSLog(@"%@", [dateFormatter stringFromDate:firstDayOfMonth]);
P.S. также см. Date Format Patterns
1
В зависимости от результата вы можете использовать NSDateFormatter
(как уже было сказано), или вы можете использовать класс NSDateComponents
. NSDateFormatter
даст вам строковое представление, NSDateComponents
даст вам целочисленные значения. Метод weekday
может делать то, что вы хотите.
NSDateComponents *components = ...;
NSInteger val = [components weekday];
3
Вот решение, чтобы получить имя дня недели первого дня в текущем месяце
NSDateComponents *weekdayComps = [[NSDateComponents alloc] init];
weekdayComps = [calendar.currentCalendar components:calendar.unitFlags fromDate:calendar.today];
weekdayComps.day = 1;
NSDateFormatter *weekDayFormatter = [[NSDateFormatter alloc]init];
[weekDayFormatter setDateFormat:@"EEEE"];
NSString *firstweekday = [weekDayFormatter stringFromDate:[calendar.currentCalendar dateFromComponents:weekdayComps]];
NSLog(@"FIRST WEEKDAY: %@", firstweekday);
Для индекса буднего дня, используйте этот
NSDate *weekDate = [calendar.currentCalendar dateFromComponents:weekdayComps];
NSDateComponents *components = [calendar.currentCalendar components: NSWeekdayCalendarUnit fromDate: weekDate];
NSUInteger weekdayIndex = [components weekday];
NSLog(@"WEEKDAY INDEX %i", weekdayIndex);
Вы также можете увеличить или при необходимости уменьшите месяц.
Смежные вопросы
- 1. Получение первого дня месяца -1 месяца
- 2. Получение первого дня месяца определенного месяца/года
- 3. python - Неделя номер месяца
- 4. FullCalendar неделя месяца вид
- 5. Неделя месяца в SQL
- 6. Неделя месяца pandas
- 7. поиск первого дня месяца в python
- 8. Формула Excel для первого дня предыдущего месяца
- 9. Округление дат до первого дня месяца
- 10. Выбор первого дня месяца в HIVE
- 11. Таблица Google в качестве первого дня месяца
- 12. Формат месяца месяца/дня, отличного от localhost
- 13. Неделя Количество месяца с условиями
- 14. Таблица календаря - неделя номер месяца
- 15. Рассчитать неделя месяца начиная понедельник
- 16. SQL Как изменить столбец batch_date с первого дня месяца до последнего дня месяца
- 17. Подтверждение фильтра SSRS за 12 месяцев с первого дня месяца до последнего дня месяца
- 18. Возврат последнего дня месяца
- 19. Расчет дня, месяца, года
- 20. расчет последнего дня месяца
- 21. Динамическое отображение дня дня месяца - PHP
- 22. Выбор последнего дня каждого месяца?
- 23. Форматирование месяца, дня и года
- 24. Получение последнего дня текущего месяца
- 25. MySQL GROUP BY WEEK Начиная первого месяца
- 26. Как получить день недели с первого дня месяца, используя pyspark
- 27. Проверка времени PHP + 10 дней до первого дня следующего месяца
- 28. как получить дату первого дня месяца в php
- 29. Запрос на получение первого дня месяца, не работающего с DATEADD
- 30. Как получить номер дня недели первого месяца текущего месяца в PHP
Ваш вопрос непонятен. Вы хотите получить будний день на 1-е число каждого месяца? 1 сентября 2013 года - воскресенье, 1 октября 2013 года - вторник и т. Д. – rmaddy
@rmaddy yes Я имею в виду, что – Anton
@Wain Я попытался сыграть с компонентами даты, порядком дня недели, будними днями и т. Д. – Anton