1、判断两个日期是否是同一天,不要求小时,分钟要一样

用法

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];BOOL datesAreEqual = [calendar isDate:firstDate equalToDate:secondDate toUnitGranularity:NSDayCalendarUnit];

NSCalendar+equalWithGranularity.h

#import <Foundation/Foundation.h>@interface NSCalendar (equalWithGranularity)- (BOOL)isDate:(NSDate *)date1 equalToDate:(NSDate *)date2 withGranularity:(NSCalendarUnit)granularity;@end

NSCalendar+equalWithGranularity.m

#import "NSCalendar+equalWithGranularity.h"@implementation NSCalendar (equalWithGranularity)- (BOOL)isDate:(NSDate *)date1 equalToDate:(NSDate *)date2 withGranularity:(NSCalendarUnit)granularity {if ([date1 isEqualToDate:date2]) {return YES;}int componentFlags = [self componentFlagsWithGranularity:granularity];date1 = [self dateFromDate:date1 withComponentFlags:componentFlags];date2 = [self dateFromDate:date2 withComponentFlags:componentFlags];return [date1 isEqualToDate:date2];}
- (int)componentFlagsWithGranularity:(NSCalendarUnit)granularity
{int componentFlags = 0;for (int i = 1<<1 ; i <= granularity ; i = i<<1) {componentFlags = componentFlags | i;}return componentFlags;}
- (NSDate *)dateFromDate:(NSDate *)date withComponentFlags:(int)componentFlags {NSDateComponents *components = [self components:componentFlags fromDate:date];return [self dateFromComponents:components];
}
@end

2、时间若干操作

1 // 当前时间创建NSDate

NSDate *myDate = [NSDate date];NSLog(@"myDate = %@",myDate);2 //从现在开始的24小时

NSTimeInterval secondsPerDay = 24*60*60;NSDate *tomorrow = [NSDate dateWithTimeIntervalSinceNow:secondsPerDay];NSLog(@"myDate = %@",tomorrow);3//根据已有日期创建日期

NSTimeInterval secondsPerDay1 = 24*60*60;NSDate *now = [NSDate date];NSDate *yesterDay = [now addTimeInterval:-secondsPerDay1];NSLog(@"yesterDay = %@",yesterDay);4//比较日期

BOOL sameDate = [now isEqualToDate:yesterDay];NSLog(@"sameDate = %lu",sameDate);4.1//获取较早的日期

NSDate *earlierDate = [yesterDay earlierDate:now];NSLog(@"earlierDate = %@",earlierDate);4.2//较晚的日期

NSDate *laterDate = [yesterDay laterDate:now];NSLog(@"laterDate = %@",laterDate);//两个日期之间相隔多少秒

NSTimeInterval secondsBetweenDates= [yesterDay timeIntervalSinceDate:now];NSLog(@"secondsBetweenDates= %lf",secondsBetweenDates);//通过NSCALENDAR类来创建日期

NSDateComponents *comp = [[NSDateComponentsalloc]init];[comp setMonth:06];[comp setDay:01];[comp setYear:2001];NSCalendar *myCal = [[NSCalendaralloc]initWithCalendarIdentifier:NSGregorianCalendar];NSDate *myDate1 = [myCal dateFromComponents:comp];NSLog(@"myDate1 = %@",myDate1);//从已有日期获取日期

unsigned units = NSMonthCalendarUnit|NSDayCalendarUnit|NSYearCalendarUnit;NSDateComponents *comp1 = [myCal components:units fromDate:now];NSInteger month = [comp1 month];NSInteger year = [comp1 year];NSInteger day = [comp1 day];//NSDateFormatter实现日期的输出

NSDateFormatter *formatter = [[NSDateFormatteralloc]init];[formatter setDateStyle:NSDateFormatterFullStyle];//直接输出的话是机器码//或者是手动设置样式[formatter setDateFormat:@"yyyy-mm-dd"];

NSString *string = [formatter stringFromDate:now];NSLog(@"string = %@",string);NSLog(@"formater = %@",formatter);

转自 http://www.cnblogs.com/xdream86/archive/2012/12/17/2821305.html,感谢原作者的整理收集

转载于:https://www.cnblogs.com/howeho/p/3467309.html

object c小代码——日期篇相关推荐

  1. 【Vuforia AR Unity 2018.3.12f1】MikuAR安卓程序开发实践(三)代码终结篇_2019.4.24

    Unity平台 + Vuforia SDK实现的AR程序开发 模型的三大操作(平移 旋转 缩放)代码 一.平移 二.旋转缩放 三.操作代码解析 模型的选定(射线法) 食用方法 自发光组件 食用方法 V ...

  2. 微信小程序日期时分组件(年月日时分)--复制即用

    微信小程序日期组件(年月日时分)–复制即用 如图所示效果 第一步新建picker组件文件 1,pickerTime.js组件代码内容 // component/pickerTime/pickerTim ...

  3. 微信小程序实战篇-购物车

    哈喽,大家好,快半个月没写了,现在提笔都有点生硬了,一直没更新的原因,一个是代码君也要上班,加上最近工作比较忙,还有就是写文章一直未被认可,所以没什么动力再创作了,那时真的坚持不下去,打算放弃了,感谢 ...

  4. 微信小程序实战篇-商品详情页(二)

    今天要讲解商品详情页中sku的弹出选着框,这个涉及css动画样式,css动画是新的知识点,我们之前并没有接触过,请大家做好笔记,我们要做的效果是酱紫的~ 这个布局难点是需要绘制一个阴影背景.弹出的动画 ...

  5. python 小甲鱼 代码_Python小代码

    先自我介绍一下,本人是正在自学Python的小白,没事分享一下自己写的小代码,欢迎在评论区补充. 游戏管理系统: 代码如下: def healthe(m):if m=="Y"or ...

  6. 微信小程序实战篇:商品属性联动选择(案例)

    本期的微信小程序实战篇来做一个电商网站经常用到的-商品属性联动选择的效果,素材参考了一点点奶茶. 效果演示: 商品属性联动.gif 代码示例 1.commodity.xml <!-- <v ...

  7. 前端微信小程序实战篇

    电商底部导航栏的制作 我想大家对电商一定不陌生,一般电商的底部导航栏有以下几个首页.分类.购物车.个人中心. app.json是用来配置page路径以及导航栏属性的,那我们要做首页.分类.购物车.个人 ...

  8. 《微信小程序-基础篇》初识微信小程序

    大家好,好久不见了,前段时间各种原因分享不稳定,后面一段时间内参与了主站的原力计划,请麻烦各位支持一下,万分感谢- 本系列将从零开始介绍微信小程序的开发,介绍完基础以后会实际同步开发一个微信小程序的项 ...

  9. 微信小程序实战篇-下拉刷新与加载更多

    下拉刷新 实现下拉刷新目前能想到的有两种方式 调用系统的API,系统有提供下拉刷新的API接口 下拉刷新API.png 监听scroll-view,自定义下拉刷新,还记得scroll-view里面有一 ...

  10. 小程序日期(日历)时间 选择器组件

    封装一个小程序日期(日历)时间 选择器组件 简要说明: 一共两个版本 ,date-time-picker 和 date-time-picker-plus. date-time-picker 弹窗层是 ...

最新文章

  1. 初探运算符重载------(减号)
  2. python库迁移到没有网的电脑_关于换机器后python库的迁移-偷懒做法
  3. Spring-学习笔记04【Spring的常用注解】
  4. LeetCode53:最大子序和(分治思想,Python3实现)
  5. 图片的base64编码实现以及网页上显示
  6. Bash常用快捷键及其作用
  7. Android 自定义View绘制的基本开发流程 Android自定义View(二)
  8. webservice常见名词
  9. 什么是IEC 61508?
  10. typename的含义
  11. 单片机原理及接口技术
  12. css字体浏览(转)
  13. 2020华为海思的实习生面试记录(雨人)
  14. 保存网页内容为PDF,支持文本复制,链接跳转
  15. 什么是Web前端工程师?为什么Web前端工资如此之高呢?
  16. 冰点还原界面无法呼出如何解决
  17. 计算机从外部世界接收信息和向外部世界反馈运算结果的手段
  18. Cesium 实战 - 最新版(1.104.0)通过异步方式初始化地球,加载影像以及高程图层
  19. 建模simulink - xpc接口说明
  20. 一名合格的管理者需要具备哪些能力?公司管理培训课程推荐

热门文章

  1. MacOS系统离线安装包11.x-12.x
  2. 三维建模软件:Rhino 7 for Mac
  3. EaseUS Data Recovery Wizard 如何在Mac上恢复已删除文件?
  4. Mac电脑如何把备忘录添加到通知栏组件中?
  5. 如何在Mac上的键盘辅助功能中使用面板编辑器?
  6. 2018为什么你一定要学Python
  7. 字符串的HashCode可能相同
  8. 高性能集群软件Keepalived之安装配置篇
  9. eclipse中设置JVM内存
  10. 可重启的活动目录域服务