zoukankan      html  css  js  c++  java
  • NSDate 刚刚、几分钟、几小时

    - (NSString *)minutesAgo {

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

        fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss";

        NSDate *createdDate = [fmt dateFromString:self];

        

        // 判断发送时间 和 现在时间 的差距

        if (createdDate.isToday) { // 今天

            if (createdDate.deltaWithNow.hour >= 1) {

                fmt.dateFormat = @"HH:mm";

                return [fmt stringFromDate:createdDate];

            } else if (createdDate.deltaWithNow.minute >= 1) {

                return [NSString stringWithFormat:@"%ld分钟前", (long)createdDate.deltaWithNow.minute];

            } else {

                return @"刚刚";

            }

        } else if (createdDate.isYesterday) { // 昨天

            fmt.dateFormat = @"昨天 HH:mm";

            return [fmt stringFromDate:createdDate];

        } else if (createdDate.isThisYear) { // 今年(至少是前天)

            fmt.dateFormat = @"MM-dd HH:mm";

            return [fmt stringFromDate:createdDate];

        } else {// 非今年

            fmt.dateFormat = @"yyyy-MM-dd HH:mm";

            return [fmt stringFromDate:createdDate];

        }

    }

    #pragma mark Comparing Dates

    - (BOOL) isEqualToDateIgnoringTime: (NSDate *) aDate

    {

    NSDateComponents *components1 = [CURRENT_CALENDAR components:DATE_COMPONENTS fromDate:self];

    NSDateComponents *components2 = [CURRENT_CALENDAR components:DATE_COMPONENTS fromDate:aDate];

    return ((components1.year == components2.year) &&

    (components1.month == components2.month) &&

    (components1.day == components2.day));

    }

    - (BOOL) isToday

    {

    return [self isEqualToDateIgnoringTime:[NSDate date]];

    }

    - (BOOL) isYesterday

    {

    return [self isEqualToDateIgnoringTime:[NSDate dateYesterday]];

    }

    /**

     *  获得与当前时间的差距

     */

    - (NSDateComponents *)deltaWithNow {

        NSCalendar *calendar = [NSCalendar currentCalendar];

        int unit = NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;

        return [calendar components:unit fromDate:self toDate:[NSDate date] options:0];

    }

    /**

     *  是否为今年

     */

    - (BOOL)isThisYear {

        NSCalendar *calendar = [NSCalendar currentCalendar];

        int unit = NSCalendarUnitYear;

        

        // 获得当前时间的年月日

        NSDateComponents *nowCmps = [calendar components:unit fromDate:[NSDate date]];

        

        // 获得self的年月日

        NSDateComponents *selfCmps = [calendar components:unit fromDate:self];

        

        return nowCmps.year == selfCmps.year;

    }

  • 相关阅读:
    关于Lua中的面向对象实现
    当我读《体验引擎:游戏设计全景探秘》时我在想什么
    【Unity】拖动图片生成对应Image
    【Unity】阅读LuaFramework_UGUI的一种方法
    【Unity】关于VS条件编译符号
    Lua元表应用举例:配置表格转为Lua配置表
    对文件夹下的git项目进行批量更新、打包
    二分查找
    python-变量及字符串赋值|今日所学-2017-12-26
    lamda- filter,map, collect
  • 原文地址:https://www.cnblogs.com/chenzq12/p/6252103.html
Copyright © 2011-2022 走看看