ios-计算出一个月内有几个星期

问题描述

计算出一个月内有几个星期
我想要计算出一个月内的星期。我找到在IOS5实现的方法了,但是在IOS6中不知道应该怎么办?

- (int)weeksOfMonth:(int)month inYear:(int)year{    NSCalendar *cCalendar = [NSCalendar currentCalendar];    NSDateComponents *components = [[NSDateComponents alloc] init];    [components setMonth:month];    [components setYear:year];    NSRange range = [cCalendar rangeOfUnit:NSDayCalendarUnit                               inUnit:NSMonthCalendarUnit                              forDate:[cCalendar dateFromComponents:components]];    cCalendar = [NSCalendar currentCalendar];    [cCalendar setMinimumDaysInFirstWeek:4];    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];    [dateFormatter setLocale: [[NSLocale alloc] initWithLocaleIdentifier:@""fr""]];    [dateFormatter setDateFormat:@""yyyy-MM-dd""];    NSMutableSet *weeks = [[NSMutableSet alloc] init ];    for(int i = 0; i < range.length; i++)    {        NSString *temp = [NSString stringWithFormat:@""%4d-%2d-   %2d""yearmonthrange.location+i];        NSDate *date = [dateFormatter dateFromString:temp ];        int week = [[cCalendar components: NSWeekOfYearCalendarUnit fromDate:date] weekOfYear];        [weeks addObject:[NSNumber numberWithInt:week]];    }    return [weeks count];}

结果在ios5中返回了5,在ios6中返回了6,这应该怎么解决?

解决方案

我更新XCode后没有IOS5了,但是我不知道你有没有看这段代码。这段代码的意思也就是说循环遍历当前月的每一日,取每一日所在在年周数放入set中。
比如3月份,3月1号是2013年第9周,而三月31号是2013年第14周,也就说的确是6周。
我觉得Ios5中返回5的原因可能是个系统bug被修复了。
------------------------------------
当然还有种方法:
[cCalendar setMinimumDaysInFirstWeek:4];//通过这个参数设置首周的长度
int week = [[cCalendar components: NSWeekOfMonthCalendarUnit fromDate:date] weekOfMonth];//通过这个算当前日在周号

比如说首周长度为4的时候,周号为{0,1,2,3,4,5}
比如说首周长度为1的时候,周号为{1,2,3,4,5,6}
然后自己做判断,过虑周号为0的周,这样就返回5了。

时间: 2024-10-27 22:36:35

ios-计算出一个月内有几个星期的相关文章

如何高效地计算出一个有向无环图中各个节点的祖先节点数和后代节点数?

问题描述 如何高效地计算出一个有向无环图中各个节点的祖先节点数和后代节点数? 数据量较大,希望复杂度尽量低.现在实现图的数据结构是用HashMap记录对应标号的节点,再分别对每个节点使用HashMap记录子节点.感谢!

把“可疑”客户计算出“收入成本比” 算出客户的价值

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 当你把每个"可疑"客户都计算出一个"收入成本比",就很容易看出谁能带来的利润最差了. 文 | Joe Worth 如何鉴别哪些客户一直在浪费我的时间和精力却让我无法得到令人满意的回报,是我应该果断说再见的? 许多老板都知道自己企业的一大堆客户里,有相当一部分并不能带来利润.虽然我们一天到晚都在听&quo

jquery计算出left和top,让一个div水平垂直居中的简单实例_jquery

实例如下: if($("#cont1").css("position")!="fixed"){ $("#cont1").css("position","absolute"); var dw = $(window).width(); var ow = $("#cont1").outerWidth(); var dh = $(window).height(); var o

网易巫妖王之怒审批获重大进展 一个月内出结果

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;       据知情人士透露,网易关于<魔兽世界>资料片<巫妖王之怒>的出版申请已经送交至新闻出版总署,审批结果预计将在一个月内作出.而对于传闻中巫妖王之怒审批被打回一事,相关各方均予以了否认. <巫妖王之怒>的审批已离尾声越来越近.接近此事的知情人士对新浪科技透露,<巫妖王之怒>的申请已经送至新闻出版总署,而且预计很快

记录每个客户的通话情况并计算出每个客户的月账单情况

题目概述 系统会记录每个客户的通话情况, 会告诉你每个时间段(00:00~01:00, 01:00~02:00, ...)的通话费用. 要求计算出每个客户的月账单情况. 输入 每个输入包含测试用例, 每个测试用例包含两部分: 每个时间段的通话费用(分(cent)/分钟)和每个客户的通话情况. 通话费用由24个非负整数组成, 代表了24小时内每个小时的通话费用. 接下来N(<= 1000)行是客户的通话记录. 每条记录由以下项目组成: 客户的姓名, 时间和日期(格式为month:day:hour:

vc++-vc 使用阳历日期计算出农历日期

问题描述 vc 使用阳历日期计算出农历日期 根据当前获取得到的公历日期,如何得到它的阳历日期,规则或者有什么公式没? 解决方案 阴阳历算法 解决方案二: 阴阳历转换 这个算法,一般是有一个表的,需要查表没有单纯的算法可以实现转换的功能. 解决方案三: http://wenku.baidu.com/link?url=R46wuTJHzyFWnKTDwoxTyPMejR62fFmFYXicGSf62jfw-ocv7VXu10A7K6X7_1n4lTsA0-LKKvL0l7J1jTcVWyKYVYXj

如何使用PHP计算上一个月的今天

  一日,遇到一个问题,求上一个月的今天. 最开始我们使用 strtotime("-1 month") 函数求值,发现有一个问题,月长度不一样的月份的计算结果有误. 比如:2011-03-31,得到的结果是2011-03-03.我们先不追究什么问题,先看如何解决问题. 此时,想起PHP中有一个mktime函数,于是自己写了如下代码: 代码如下: echo date("Y-m-d H:i:s", mktime(date("G", $time), d

分析:如何设计出一个好的Windows 8应用

虽然 Windows 8 刚上市只有半个月多一点,但 Windows 8 之父,同时也是 Windows 和 Windows Live 部门的总裁.微软下一代 CEO 热门人选的史蒂芬・辛诺夫斯基却已经离开了微软, Windows 8 的设计语言名称也从最初的 Metro 先是变为 Modern 接着变为 Windows 8 Style,最后变为目前微软中国官方所称的 Microsoft Design(本文依旧延用旧名称 Metro 表示 Microsoft Design Language/St

Photoshop利用计算命令计算出精确选区调整图片颜色

  本教程主要使用Photoshop详细实例解析计算命令的原理,通过通道利用计算命令计算出精确选区,应用图像命令调整色彩.不同于色相/饱和度.色彩平衡的色彩调整方式. 混合模式是计算命令的灵魂,使用计算命令为选择 不少人常常会问:计算命令的实质究竟是什么? Photoshop帮助文件这样描述计算命令,计算命令使您可以混合两个来自一个或多个源图像的单个通道.然后可以将结果应用到新图像或新通道,或现用图像的选区.不能对复合通道应用计算命令. 它是一个计算过程的描述,这个描述对于能够熟练使用计算命令的