NSCalendar取得上个月

Stella981
• 阅读 423

最近在做公司的商家端,需要做到统计功能,统计功能需要获取到上个月的数据,仅仅使用NSDate + NSDateFormatter是无法完成这个工作的。NSCalender可以完美解决这个问题。

  • NSCalendar *calender = [NSCalendar currentCalendar];获取NSCalender单例。
  • NSDateComponents *cmp = [calender components:(NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:[[NSDate alloc] init]]; 设置属性,因为我只需要年和月,这个属性还可以支持时,分,秒。
  • [cmp setMonth:[cmp month] - 1];设置上个月,即在现有的基础上减去一个月。这个地方可以灵活的支持跨年了,免去了繁琐的计算年份的工作。
  • NSDate *lastMonDate = [calender dateFromComponents:cmp];拿到上个月的NSDate,再用NSDateFormatter就可以拿到单独的年和月了。

PS: 这个解决方案我是在Stackoverflow上面找到的,链接是: NSCalender获取上个月


给自己一个目标吧,我发现网上的答案都不是非常清晰,都是每个地方一个代码片段,不太完整的解答和语焉不详的描述,非常不利于学习者的查询。我要写好这个博客,力求每一篇都完整和清晰的给出代码,减少阅读者的学习成本和时间。这个可以做一个网站啊!

点赞
收藏
评论区
推荐文章
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
2年前
java抓取豆瓣电影数据,分析电影评分,生成统计图表
    最近花时间学习了一下使用Java获取网站数据的方法,自己也亲自动手实践一下;共获取3000数据,去除重复的数据剩余2000,使用JFreeChart根据电影评分做出几张简单的统计图。电影评分统计图:JFreeChart生成图片!(https://static.
Wesley13 Wesley13
2年前
java操作html格式数据
近期在做数据抓取功能,抓取到的数据为html格式,需在后台进行转换后取值,为了避免使用字符串查找方式获取而使用Jsonp完美实现。1\.引入Jsonp:1<dependency2<groupIdorg.jsoup</groupId3<artifactIdjsoup</artifactId
Stella981 Stella981
2年前
GreenPlum tidb 性能比较
主要的需求  针对大体量表的OLAP统计查询,需要找到一个稳定,高性能的大数据数据库,具体使用  数据可以实时的写入和查询,并发的tps不是很高建立数据仓库,模式上主要采用星星模型、雪花模型,或者宽表前端展示分为3类 saiku、granafa、c代码开发数据体量:事实表在35亿、维度表大的在500
Wesley13 Wesley13
2年前
oracle存储过程出现ORA
这段时间在做一个业务,需要用到存储过程处理业务逻辑,但是出现一个ORA01403:未找到数据问题,那么这个应该如何解决这个问题declaremixTypeinteger;begin原先获取方式selectNVL(MID,0)intomixTypefromDXC_MIXTYP
Wesley13 Wesley13
2年前
Oracle一张表中实现对一个字段不同值和总值的统计(多个count)
需求:统计WAIT\_ORDER表中的工单总数、未处理工单总数、已完成工单总数、未完成工单总数。表结构:为了举例子方便,WAIT\_ORDER表只有两个字段,分别是ID、STATUS,其中STATUS为工单的状态。1表示未处理,2表示已完成,3表示未完成总数。 SQL:  1.SELECT   2
Wesley13 Wesley13
2年前
Java日期时间API系列23
  有时候,往往需要统计某个时间区间的销量等问题,这就需要准确的起始时间,获取准确开始时间00:00:00,获取准确结束时间23:59:59。下面增加了一一些方法,获取当天起始时间,昨天起始时间,当前月第一天开始时间,当前月最后一天结束时间,上个月第一天开始时间,上个月最后一天结束时间,某个指定月的起始结束时间等等。其中月份最后一天往往因为月份不同和
Stella981 Stella981
2年前
Scala进阶之路
Scala进阶之路统计商家id的标签数以及TopN示例案例分析作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。一.项目需求将“temptags.txt”中的数据进行分析,统计出商家id的评论标签数量,由于博客园无法上传大文件的文本,因此我把该文本的内容放在博客园的另一个链接了(需要的戳我
郑天寿 郑天寿
4个月前
在直播场景订阅合流的情况下,如何获取每个正在说话的主播的音量?
您可以通过RTCSDK的「通话数据统计」功能获取相关音量信息。在Android端,可以通过registerStatusReportListener注册监听,通过reportLiveAudioStates方法单独获取每个主播的音量。在iOS端,可以使用RCR
万界星空科技 万界星空科技
3星期前
MES定制开发/云MES制造执行系统解决方案
​一、制造业面临的问题:1、企业部门信息孤岛:数据依靠人工统计汇报和纸质单据传递,信息传递不及时,部门响应严重滞后。2、生产进度无法掌控:生产数据停留在纸质单据,缺乏系统汇总,生产各流程进度无法实时获取。3、质量问题无法追溯:成品、在制品状况无法实时统计质