object c小代码——日期篇
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小代码——日期篇相关推荐
- 【Vuforia AR Unity 2018.3.12f1】MikuAR安卓程序开发实践(三)代码终结篇_2019.4.24
Unity平台 + Vuforia SDK实现的AR程序开发 模型的三大操作(平移 旋转 缩放)代码 一.平移 二.旋转缩放 三.操作代码解析 模型的选定(射线法) 食用方法 自发光组件 食用方法 V ...
- 微信小程序日期时分组件(年月日时分)--复制即用
微信小程序日期组件(年月日时分)–复制即用 如图所示效果 第一步新建picker组件文件 1,pickerTime.js组件代码内容 // component/pickerTime/pickerTim ...
- 微信小程序实战篇-购物车
哈喽,大家好,快半个月没写了,现在提笔都有点生硬了,一直没更新的原因,一个是代码君也要上班,加上最近工作比较忙,还有就是写文章一直未被认可,所以没什么动力再创作了,那时真的坚持不下去,打算放弃了,感谢 ...
- 微信小程序实战篇-商品详情页(二)
今天要讲解商品详情页中sku的弹出选着框,这个涉及css动画样式,css动画是新的知识点,我们之前并没有接触过,请大家做好笔记,我们要做的效果是酱紫的~ 这个布局难点是需要绘制一个阴影背景.弹出的动画 ...
- python 小甲鱼 代码_Python小代码
先自我介绍一下,本人是正在自学Python的小白,没事分享一下自己写的小代码,欢迎在评论区补充. 游戏管理系统: 代码如下: def healthe(m):if m=="Y"or ...
- 微信小程序实战篇:商品属性联动选择(案例)
本期的微信小程序实战篇来做一个电商网站经常用到的-商品属性联动选择的效果,素材参考了一点点奶茶. 效果演示: 商品属性联动.gif 代码示例 1.commodity.xml <!-- <v ...
- 前端微信小程序实战篇
电商底部导航栏的制作 我想大家对电商一定不陌生,一般电商的底部导航栏有以下几个首页.分类.购物车.个人中心. app.json是用来配置page路径以及导航栏属性的,那我们要做首页.分类.购物车.个人 ...
- 《微信小程序-基础篇》初识微信小程序
大家好,好久不见了,前段时间各种原因分享不稳定,后面一段时间内参与了主站的原力计划,请麻烦各位支持一下,万分感谢- 本系列将从零开始介绍微信小程序的开发,介绍完基础以后会实际同步开发一个微信小程序的项 ...
- 微信小程序实战篇-下拉刷新与加载更多
下拉刷新 实现下拉刷新目前能想到的有两种方式 调用系统的API,系统有提供下拉刷新的API接口 下拉刷新API.png 监听scroll-view,自定义下拉刷新,还记得scroll-view里面有一 ...
- 小程序日期(日历)时间 选择器组件
封装一个小程序日期(日历)时间 选择器组件 简要说明: 一共两个版本 ,date-time-picker 和 date-time-picker-plus. date-time-picker 弹窗层是 ...
最新文章
- 初探运算符重载------(减号)
- python库迁移到没有网的电脑_关于换机器后python库的迁移-偷懒做法
- Spring-学习笔记04【Spring的常用注解】
- LeetCode53:最大子序和(分治思想,Python3实现)
- 图片的base64编码实现以及网页上显示
- Bash常用快捷键及其作用
- Android 自定义View绘制的基本开发流程 Android自定义View(二)
- webservice常见名词
- 什么是IEC 61508?
- typename的含义
- 单片机原理及接口技术
- css字体浏览(转)
- 2020华为海思的实习生面试记录(雨人)
- 保存网页内容为PDF,支持文本复制,链接跳转
- 什么是Web前端工程师?为什么Web前端工资如此之高呢?
- 冰点还原界面无法呼出如何解决
- 计算机从外部世界接收信息和向外部世界反馈运算结果的手段
- Cesium 实战 - 最新版(1.104.0)通过异步方式初始化地球,加载影像以及高程图层
- 建模simulink - xpc接口说明
- 一名合格的管理者需要具备哪些能力?公司管理培训课程推荐