使用Objective-c代码输出一个日历
时间: 2024-01-14 10:02:51 浏览: 36
以下是使用 Objective-C 代码输出一个月份的日历:
```objc
// 获取当前日期
NSDate *today = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:today];
NSInteger year = [components year];
NSInteger month = [components month];
// 设置日期格式化对象
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MMMM yyyy"];
// 获取当前月份第一天的日期
NSDateComponents *firstDayComponents = [[NSDateComponents alloc] init];
[firstDayComponents setYear:year];
[firstDayComponents setMonth:month];
[firstDayComponents setDay:1];
NSDate *firstDayOfMonth = [calendar dateFromComponents:firstDayComponents];
// 获取当前月份的天数
NSRange daysInMonth = [calendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:firstDayOfMonth];
// 输出日历
NSString *header = [dateFormatter stringFromDate:firstDayOfMonth];
NSLog(@"%@", header);
NSLog(@"Su Mo Tu We Th Fr Sa");
NSDateComponents *currentDateComponents = [[NSDateComponents alloc] init];
[currentDateComponents setDay:1];
[currentDateComponents setMonth:month];
[currentDateComponents setYear:year];
NSInteger weekday = [calendar component:NSCalendarUnitWeekday fromDate:firstDayOfMonth];
for (NSInteger i = 1; i < weekday; i++) {
printf(" ");
}
for (NSInteger i = 1; i <= daysInMonth.length; i++) {
printf("%2ld ", (long)i);
if (i == daysInMonth.length) {
printf("\n");
break;
}
[currentDateComponents setDay:i + 1];
NSDate *currentDate = [calendar dateFromComponents:currentDateComponents];
NSInteger currentWeekday = [calendar component:NSCalendarUnitWeekday fromDate:currentDate];
if (currentWeekday == 1) {
printf("\n");
}
}
```
该代码会输出当前月份的日历,例如:
```
May 2021
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
```
你可以根据需要修改年月来输出不同月份的日历。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)