当前位置: 首页 > news >正文

(NSDate) 时间 (time )比较

做订餐app时对下单时间的时间判断
下面是规则

  • 9:00-14:00 可以订餐
  • 14:00以后掌上餐厅仅接收晚餐订餐
  • 21:00以后掌上餐厅不接收订餐

将传入的小时和分钟 转换成当日的date

例如传入 8:00 的str 返回 2013-01-01 08:00 的nsdate

-(NSDate *)CurrentDayTime:(NSString *)dataStr

{

    //设置转换的format

    NSDateFormatter *dateFormatter = [[[NSDateFormatteralloc]init]autorelease];

    [dateFormatter setLocale:[NSLocalecurrentLocale]];

    

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

    //获取当前年月日 

    NSDate *currentdate = [NSDatedate];

    NSCalendar *calendar = [NSCalendarcurrentCalendar];

    NSDateComponents *components = [calendarcomponents:(

                                                         NSYearCalendarUnit  |

                                                         NSMonthCalendarUnit |

                                                         NSDayCalendarUnit |

                                                         NSHourCalendarUnit |

                                                         NSMinuteCalendarUnit

                                                         ) fromDate:currentdate];

   NSInteger year = [components year];

   NSInteger month = [components month];

   NSInteger day = [components day];

   NSString *strDate = [NSString stringWithFormat:@"%d-%d-%d %@",year,month,day,dataStr];

   NSDate *date = [dateFormatter dateFromString:strDate];

   return date;

}

NSLog(@"%@\n%@",[selfCurrentDayTime:@"18:00"] ,[NSDatedate]);

    NSDate *date = [NSDatedate];

    if ([datecompare:[selfCurrentDayTime:@"18:00"]] ==NSOrderedDescending)

    {

        NSLog(@"date1 is later than date2");

        

    } else if ([datecompare:[selfCurrentDayTime:@"18:00"]] ==NSOrderedAscending)

    {

        NSLog(@"date1 is earlier than date2");

        

    } else

    {

        NSLog(@"dates are the same");

        

    }
-(BOOL)checkCanDinner

{

    NSDate *currentDate = [NSDatedate];

    if ([currentDate compare:[selfCurrentDayTime:@"08:59"]] == NSOrderedDescending //late

        && [currentDate compare:[selfCurrentDayTime:@"13:59"]] == NSOrderedAscending //early

        )

    {

        //9:00-14:00 可以订餐

        return YES;

    }

    else if([currentDatecompare:[self CurrentDayTime:@"09:00"]] ==NSOrderedAscending //early

            && [currentDate compare:[selfCurrentDayTime:@"00:00"]] ==  NSOrderedDescending//late

            )

    {

        HFAlert(@"因较多餐厅休息,9:00之前掌上餐厅不接收订餐,为您带来的不便请谅解。");

        return NO;

    }

    else if([currentDatecompare:[self CurrentDayTime:@"17:59"]] ==NSOrderedAscending //early

            && [currentDate compare:[selfCurrentDayTime:@"14:00"]] ==  NSOrderedDescending//late

            )

    {

        HFAlert(@"因较多餐厅休息,14:00以后掌上餐厅仅接收晚餐订餐,为您带来的不便请谅解。");

        return YES;

    }

    else if([currentDatecompare:[self CurrentDayTime:@"21:00"]] ==NSOrderedAscending //early

            && [currentDate compare:[selfCurrentDayTime:@"18:00"]] ==  NSOrderedDescending//late

            )

    {

        //接受晚上的订单

        return YES;

    }

    else if([currentDatecompare:[self CurrentDayTime:@"23:59"]] ==NSOrderedAscending //early

            && [currentDate compare:[selfCurrentDayTime:@"21:00"]] ==  NSOrderedDescending//late

            )

    {

        HFAlert(@"因较多餐厅休息,21:00以后掌上餐厅不接收订餐,为您带来的不便请谅解。");

        return NO;

    }

    return YES;

}

相关文章:

  • CSDN的博客系统比以前快多了
  • Android之AndroidManifest.xml文件解析
  • Android权限
  • Android权限目录
  • Android的所有权限说明
  • hdu 4099 Revenge of Fibonacci 2011 Asia Shanghai Regional Contest
  • z形矩阵(蛇形矩阵)
  • hdu 2588 欧拉函数
  • hdu 2824 欧拉函数
  • hdu 1311 Relative Relatives
  • hdu 1787 欧拉函数
  • hdu 3911 Black And White 线段树
  • hdu 1068 Girls and Boys 二分匹配
  • 穿越红尘不扰关,回旋天地去复还
  • The guide to implementing 2D platformers(2D动作游戏开发与实现)
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【附node操作实例】redis简明入门系列—字符串类型
  • C++11: atomic 头文件
  • css选择器
  • Django 博客开发教程 16 - 统计文章阅读量
  • HTTP 简介
  • java8-模拟hadoop
  • PHP的类修饰符与访问修饰符
  • Terraform入门 - 1. 安装Terraform
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 安装python包到指定虚拟环境
  • 动态魔术使用DBMS_SQL
  • 开源SQL-on-Hadoop系统一览
  • 码农张的Bug人生 - 初来乍到
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 《码出高效》学习笔记与书中错误记录
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • (175)FPGA门控时钟技术
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (初研) Sentence-embedding fine-tune notebook
  • (二)WCF的Binding模型
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (论文阅读30/100)Convolutional Pose Machines
  • (转)Windows2003安全设置/维护
  • ******之网络***——物理***
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .gitignore
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .net 怎么循环得到数组里的值_关于js数组
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .NET分布式缓存Memcached从入门到实战
  • .net和jar包windows服务部署
  • .NET是什么
  • /run/containerd/containerd.sock connect: connection refused
  • ::什么意思