ios 知道星期几怎么知道日期怎么转换成星期几

您的位置: &
& iOS开发 根据某个日期计算是星期几
// 附注:直接复制粘贴代码即可
#pragma mark -获取周几
* 获取未来某个日期是星期几
* 注意:featureDate 传递过来的格式
必须 和 formatter.dateFormat 一致,否则endDate可能为nil
- (NSString *)featureWeekdayWithDate:(NSString *)featureDate{
创建 格式
NSDateFormatter *formatter = [[NSDateFormatter alloc]
// 设置 日期 格式 可以根据自己的需求 随时调整, 否则计算的结果可能为 nil
formatter.dateFormat =
@&yyyy-MM-dd&;
将字符串日期 转换为 NSDate 类型
NSDate *endDate = [formatter
dateFromString:featureDate];
// 判断当前日期 和 未来某个时刻日期 相差的天数
long days = [self daysFromDate:[NSDate date] toDate:endDate];
// 将总天数 换算为 以 周 计算(假如 相差10天,其实就是等于 相差 1周零3天,只需要取3天,更加方便计算)
long day = days &=
7 ? days % 7 :
long week = [self getNowWeekday] +
switch (week) {
@&星期天&;
@&星期一&;
@&星期二&;
@&星期三&;
@&星期四&;
@&星期五&;
@&星期六&;
* 计算2个日期相差天数
* startDate
-(NSInteger)daysFromDate:(NSDate *)startDate toDate:(NSDate *)endDate {
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]
// 话说在真机上需要设置区域,才能正确获取本地日期,天朝代码:zh_CN
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@&zh_CN&];
[dateFormatter setDateFormat:@&yyyy-MM-dd HH:mm:ss&];
//得到相差秒数
NSTimeInterval time = [endDate
timeIntervalSinceDate:startDate];
int days = ((int)time)/(3600*24);
int hours = ((int)time)%(3600*24)/3600;
int minute = ((int)time)%(3600*24)/3600/60;
if (days &= 0 && hours &= 0&&minute&= 0) {
NSLog(@&0天0小时0分钟&);
NSLog(@&%@&,[[NSString alloc] initWithFormat:@&%i天%i小时%i分钟&,days,hours,minute]);
// 之所以要 + 1,是因为 此处的days 计算的结果 不包含当天 和 最后一天\
(如星期一 和 星期四,计算机 算的结果就是2天(星期二和星期三),日常算,星期一——星期四相差3天,所以需要+1)\
对于时分 没有进行计算 可以忽略不计
return days +
// 获取当前是星期几
- (NSInteger)getNowWeekday {
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *comps = [[NSDateComponents alloc]
NSInteger unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitWeekday |
NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
NSDate *now = [NSDate date];
// 话说在真机上需要设置区域,才能正确获取本地日期,天朝代码:zh_CN
calendar.locale = [[NSLocale alloc] initWithLocaleIdentifier:@&zh_CN&];
comps = [calendar components:unitFlags
fromDate:now];
return [comps
1小时前188阅2小时前366阅5小时前352阅8小时前106阅8小时前458阅9小时前136阅23小时前131阅1天前383阅1天前495阅1天前391阅
CentOS专题
6133阅7540阅2166阅5097阅907阅8723阅2332阅3144阅855阅3370阅
5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!
按 Ctrl+D 键,
把本文加入收藏夹
热门栏目 &
热门教程 &
图书推荐 &
12345678910
12345678910
12345678910
微信扫一扫,关注动态查看: 1554|回复: 1
iOS开发学习代码之如何判断星期几
牛人, 积分 218, 距离下一级还需 282 积分
牛人, 积分 218, 距离下一级还需 282 积分
注册时间14-12-5
在线时间12 小时
主题帖子积分
牛人, 积分 218, 距离下一级还需 282 积分
牛人, 积分 218, 距离下一级还需 282 积分
发表于 15-1-23 11:55:48
[img]file:///d:\temp\4@WRVURZ}HB19[}XZX1DJ7C.gif[/img]
- (NSString*)weekDayStr:(NSString *)format&&
{&&
& & NSString *weekDayStr =&&
&&
&&NSDateComponents *comps = [[NSDateComponents alloc] init];&&
& &
&&NSString *str = [self description];&&
&&if (str.length &= 10) {&&
& & NSString *nowString = [str substringToIndex:10];&&
& & NSArray *array = [nowString componentsSeparatedByString:@&-&];&&
& & if (array.count == 0) {&&
& && &array = [nowString componentsSeparatedByString:@&/&];&&
& & }&&
& & if (array.count &= 3) {&&
& && &int year = [[array objectAtIndex:0] integerValue];&&
& && &int month = [[array objectAtIndex:1] integerValue];&&
& && &int day = [[array objectAtIndex:2] integerValue];&&
& && &[comps setYear:year];&&
& && &[comps setMonth:month];&&
& && &[comps setDay:day];&&
& & }&&
&&}&&
&&
&&NSCalendar *gregorian = [[NSCalendar alloc]&&
& && && && && && && && && &initWithCalendarIdentifier:NSGregorianCalendar];&&
&&NSDate *_date = [gregorian dateFromComponents:comps];&&
&&NSDateComponents *weekdayComponents = [gregorian components:NSWeekdayCalendarUnit fromDate:_date];&&
&&int week = [weekdayComponents weekday];&&
&&week ++;&&
& & switch (week) {&&
& && &&&case 1:&&
& && && && &weekDayStr = @&星期日&;&&
& && && && &&&
& && &&&case 2:&&
& && && && &weekDayStr = @&星期一&;&&
& && && && &&&
& && &&&case 3:&&
& && && && &weekDayStr = @&星期二&;&&
& && && && &&&
& && &&&case 4:&&
& && && && &weekDayStr = @&星期三&;&&
& && && && &&&
& && &&&case 5:&&
& && && && &weekDayStr = @&星期四&;&&
& && && && &&&
& && &&&case 6:&&
& && && && &weekDayStr = @&星期五&;&&
& && && && &&&
& && &&&case 7:&&
& && && && &weekDayStr = @&星期六&;&&
& && && && &&&
& && &&&default:&&
& && &&&weekDayStr = @&&;&&
& && && && &&&
& & }&&
& & return weekDayS&&
}&&
大虾, 积分 153, 距离下一级还需 47 积分
大虾, 积分 153, 距离下一级还需 47 积分
注册时间13-8-20
在线时间9 小时
主题帖子积分
大虾, 积分 153, 距离下一级还需 47 积分
大虾, 积分 153, 距离下一级还需 47 积分
发表于 15-1-28 13:41:46
一个让初级程序员听着激动的话题,一个让中级程序员头疼的问题,一个让高级程序员不安心的爆点~~~~日,PHP公开课解密~~届时,百万级技术架构师亲临哦>>>点击进入报名通道
除了敲代码~
必须有时间看这样的视频!!!
基础强化,不能忘的基础篇
成为JavaEE开发工程师的第一步:JAVA编程基础集合贴
~~~纯干货,纯干货,纯干货。跟着我走,不会掉队!!!
UI干干干干干货福利——千锋UI老师揭秘产品中情感化设计要素,喊你来学~
GMT+8, 17-6-17 20:01
Powered by本帖子已过去太久远了,不再提供回复功能。得到每周 星期一零点(即本周的开始) 和星期天 24 点(即本周的结束和下一周的开始)的时间
NSDate *now = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comp = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSWeekdayCalendarUnit|NSDayCalendarUnit
fromDate:now];
// 得到星期几
// 1(星期天) 2(星期二) 3(星期三) 4(星期四) 5(星期五) 6(星期六) 7(星期天)
NSInteger weekDay = [comp weekday];
// 得到几号
NSInteger day = [comp day];
NSLog(@"weekDay:%ld
day:%ld",weekDay,day);
// 计算当前日期和这周的星期一和星期天差的天数
long firstDiff,lastD
if (weekDay == 1) {
firstDiff = 1;
lastDiff = 0;
firstDiff = [calendar firstWeekday] - weekD
lastDiff = 9 - weekD
NSLog(@"firstDiff:%ld
lastDiff:%ld",firstDiff,lastDiff);
// 在当前日期(去掉了时分秒)基础上加上差的天数
NSDateComponents *firstDayComp = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:now];
[firstDayComp setDay:day + firstDiff];
NSDate *firstDayOfWeek= [calendar dateFromComponents:firstDayComp];
NSDateComponents *lastDayComp = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:now];
[lastDayComp setDay:day + lastDiff];
NSDate *lastDayOfWeek= [calendar dateFromComponents:lastDayComp];
NSDateFormatter *formater = [[NSDateFormatter alloc] init];
[formater setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSLog(@"星期一开始 %@",[formater stringFromDate:firstDayOfWeek]);
NSLog(@"当前 %@",[formater stringFromDate:now]);
NSLog(@"星期天结束 %@",[formater stringFromDate:lastDayOfWeek]);
阅读(...) 评论()

我要回帖

更多关于 java判断日期是星期几 的文章

 

随机推荐