+(NSInteger)getDaysFrom:(NSDate *)serverDate To:(NSDate *)endDate

{

NSCalendar *gregorian = [[NSCalendar alloc]

initWithCalendarIdentifier:NSCalendarIdentifierGregorian];

[gregorian setFirstWeekday:2];

//去掉时分秒信息

NSDate *fromDate;

NSDate *toDate;

[gregorian rangeOfUnit:NSCalendarUnitDay startDate:&fromDate interval:NULL forDate:serverDate];

[gregorian rangeOfUnit:NSCalendarUnitDay startDate:&toDate interval:NULL forDate:endDate];

NSDateComponents *dayComponents = [gregorian components:NSCalendarUnitDay fromDate:fromDate toDate:toDate options:0];

return dayComponents.day;

}

//比较选择的开始时间和结束时间的大小

+(BOOL)ComparisonString:(NSString *)str1 andString:(NSString *)str2

{

// NSString *dateStr=@"2015-12-31 01:01:01";//传入时间

//1.获得时间

NSDate *senddate = [ NSDate date ];

NSDateFormatter *dateformatter = [[ NSDateFormatter alloc ] init];

[dateformatter setDateFormat : @"yyyy-MM-dd" ];

NSString *locationString = [dateformatter stringFromDate :senddate];

str2 = locationString;

NSArray *arrya1 = [str1 componentsSeparatedByString:@" " ];

str1 = arrya1.firstObject;

arrya1  = [str2 componentsSeparatedByString:@" " ];

str2 = arrya1.firstObject;

NSString *dateStr = [ NSString stringWithFormat:@"%@ 00:00:01",str1];

//传入时间

//将传入时间转化成需要的格式

NSDateFormatter *format = [[ NSDateFormatter alloc ] init];

[ format setDateFormat:@"yyyy-MM-dd HH:mm:ss" ];

NSDate *fromdate = [format dateFromString:dateStr];

NSTimeZone *fromzone = [ NSTimeZone systemTimeZone ];

NSInteger frominterval = [fromzone secondsFromGMTForDate: fromdate];

NSDate *fromDate = [fromdate  dateByAddingTimeInterval: frominterval];

NSLog(@"调的时间=%@",fromDate);

NSString *dateStr1 = [ NSString stringWithFormat : @"%@ 23:59:59",str2];

//传入时间

//将传入时间转化成需要的格式

NSDateFormatter *format1 = [[ NSDateFormatter alloc ] init ];

[format1 setDateFormat : @"yyyy-MM-dd HH:mm:ss" ];

NSDate *fromdate1 = [format1 dateFromString : dateStr1];

NSTimeZone *fromzone1 = [ NSTimeZone systemTimeZone ];

NSInteger frominterval1 = [fromzone1 secondsFromGMTForDate : fromdate1];

NSDate *fromDate1 = [fromdate1  dateByAddingTimeInterval : frominterval1];

NSLog(@"调的时间1=%@",fromDate1);

double intervalTime = [fromDate1 timeIntervalSinceReferenceDate ] - [fromDate timeIntervalSinceReferenceDate ];

long lTime = (long)intervalTime;

NSInteger iDays = lTime/60/60/24;

if (iDays <= 0 ) {

return NO;

}else{

return YES;

}

}

//感谢大神的代码,拷贝为了记录

比较两个NSDate类型的参数相差的时间差的更多相关文章

  1. mybatis传入两个String类型的参数

    1.项目spring +mybatis +oracle 2.报错信息: [DEBUG] -- :: org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debu ...

  2. 比较两个Date类型的数据相差几年

    package com.utils; import java.text.DecimalFormat; import java.text.ParseException; import java.text ...

  3. java动态获取WebService的两种方式(复杂参数类型)

    java动态获取WebService的两种方式(复杂参数类型) 第一种: @Override public OrderSearchListRes searchOrderList(Order_Fligh ...

  4. 接收content-type:multipart/form-data类型的参数

    一.问题描述 最近在写接口程序,该接口需要与其他公司的程序对接.对方发送content-type:multipart/form-data类型的参数,结果通过request.getParameter(p ...

  5. java mybatis 框架下多种类型的参数传入到xml问题

    由于公司要求,最近从.net向java 转,然后过程中遇到各种奇葩问题,特在此随记一番. 场景:一个方法中有两个参数,一个List的集合,一个int 类型的参数,最初我在xml的sql参数,无论定义成 ...

  6. 基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同 but------> 可以返回派生类对象的引用或指针

      您查询的关键词是:c++primer习题15.25 以下是该网页在北京时间 2016年07月15日 02:57:08 的快照: 如果打开速度慢,可以尝试快速版:如果想更新或删除快照,可以投诉快照. ...

  7. C# ref_out_params方法的参数_4种类型的参数

    之前学习C#没有做笔记的习惯,因此有些基础上的东西并没有很好地整理起来,虽然这些东西比较常用,因此也没什么影响,但总觉得不整理一下感觉老是有种陌生感.今天特别整理一下C#4种类型的参数. 一.按值传递 ...

  8. 关于ASP.NET中WEBAPI中POST请求中FromBody修饰的string类型的参数服务器端获取不到值FromBody空值的简单解决方法

    其实解决办法很简单,就是POST请求的时候,来自实体的参数,content-type:application/x-www-form-urlencoded情况下,是默认按照键值对来解析的,比如param ...

  9. Django一对一查询,列类型及参数

    一对一查询 表的创建 # 通过 OneToOneField 创建一对一的关系 from django.db import models # Create your models here. class ...

随机推荐

  1. system verilog中的类型转换(type casting)、位宽转换(size casting)和符号转换(sign casting)

    类型转换 verilog中,任何类型的任何数值都用来给任何类型赋值.verilog使用赋值语句自动将一种类型的数值转换为另一种类型. 例如,当一个wire类型赋值给一个reg类型的变量时,wire类型 ...

  2. 十、DG

    1.DG是dependency graph,我认为是依赖图,和DAG(有向无环图)的区别:DAG用来做场景管理,每个node代表的不是tranform就是shape,有父子关系. DG是代表了每个实体 ...

  3. VS中附加进程的方式调试IIS页面,以及设置断点无效问题解决

    以前调试网站的时候都习惯是直接在解决方案中右键调试——启动新实例,后来发现这样的缺点有: 1.启动比较慢: 2.一些浏览器的request参数无法带入: 3.不特殊指定启动url的话,VS会将页面加载 ...

  4. jQuery-表单流程导航

    前言:以前做过一个项目,里面牵涉到流程相关的业务,需要用到流程页面导航的效果,完整的工作流相关的项目以前也做过,需要用到第三方插件,当然这里记录的业务需求没这个麻烦,仅仅需要能有一个页面导航的标题栏, ...

  5. css内容样式属性

    设置元素的最大高度.最小高度.最大宽度.最小宽度,用max-height.min-height.max-width.min-width. visibility:设置元素是否可见.visible和hid ...

  6. C语言中内存操作函数

      一.malloc/calloc 名称: Malloc/calloc 功能: 动态内存分配函数 头文件: #include <stdlib.h> 函数原形: void *malloc(s ...

  7. chrome调试JavaScript脚本

    随着 JavaScript 应用的复杂性逐渐提高,开发者需要有力的调试工具来帮助他们快速发现问题的原因,并且能高效地修复它.Chrome DevTools 提供了一系列实用的工具使得调试 JavaSc ...

  8. 命令与文件的查询 which whereis locate find

    一:which which查找脚本文件也就是我们的系统命令 用法:which [command] 默认根据我们PATH路径去查找,但是不同的用户肯定设置不同的PATH,所以就像普通用户查找不到一些/s ...

  9. js中各种事件的兼容性

    1给元素绑定一个事件 ie8attachEvent(on+"事件",event); 高级浏览器 addEventListener("事件",event,fals ...

  10. springMVC:通配符的匹配很全面, 但无法找到元素 'mvc:annotation-driven' 的声明

    转自:http://blog.csdn.net/tolcf/article/details/50845483 报错信息:通配符的匹配很全面, 但无法找到元素 'mvc:annotation-drive ...