swift 中日期擴展和元組的使用

嘗試寫swift 的擴展,發(fā)現元組是挺方便的

import Foundation

extension Date {
    
    /*
     * 獲取這個月有多少天
     */
    func getMonthHowManyDays() -> Int {
        
        return (NSCalendar.current.range(of: .day, in: .month, for: self as Date)?.count)!
    }
    
    /*
     * 獲取日期是星期幾
     */
    func getDateWeekDay() -> NSInteger {
        let dateFmt = DateFormatter.init()
        dateFmt.dateFormat = "yyyy-MM-dd HH:mm:ss"
        let interval = Int(self.timeIntervalSince1970)
        let days = Int(interval/86400)
        let weekday = ((days + 4)%7+7)%7
        
        return weekday;
    }
    
    /*
     * 獲取這個月第一天是星期幾
     */
    func getMonthFirstWeekDay() ->Int {
        //1.sun 2.Mon 3.Thes ... 7 sat
        let calendar = Calendar.current
        var com = calendar.dateComponents([.year,.month,.day], from: self as Date)
        
        //設置成第一天
        com.day = 1;
        let date = calendar.date(from: com)
        let firstWeekDay = calendar.ordinality(of: .weekday, in: .weekOfMonth, for: date!)
        
        return firstWeekDay! - 1
    }
   
    /*
     * 獲取當前Year
     */
    func getYear() ->Int {
        let callendar = Calendar.current
        let com = callendar.dateComponents([.year,.month,.day], from: self as Date)
        
        return com.year!
    }
    
    /*
     * 獲取當前Month
     */
    func getMonth() -> Int {
        let  callendar = Calendar.current
        let com  = callendar.dateComponents([.year,.month,.day], from: self as Date)
        
        return com.month!
    }
    
    /*
     * 獲取當前Day
     */
    func getDay() -> Int {
        let  callendar = Calendar.current
        let com  = callendar.dateComponents([.year,.month,.day], from:self as Date)
        
        return com.day!
    }
    
    /*
     * 獲取當前 hour
     */
    func getHour() -> Int {
        let  callendar = Calendar.current
        let com  = callendar.dateComponents([.hour,.minute,.second], from:self as Date)
        
        return com.hour!
    }
    
    /*
     * 獲取當前 min
     */
    func getMin() -> Int {
        let  callendar = Calendar.current
        let com  = callendar.dateComponents([.hour,.minute,.second], from:self as Date)
        
        return com.minute!
    }
    
    /*
     * 獲取當前 second
     */
    func getSecond() -> Int {
        let  callendar = Calendar.current
        let com  = callendar.dateComponents([.hour,.minute,.second], from:self as Date)
        return com.second!
    }
    
    /*
     * 實用元組 獲取當前 年垃沦,月躏吊,日
     *
     */
    func getYearMonthDay() ->(year:Int,month:Int,day:Int) {
        let  callendar = Calendar.current
        let com  = callendar.dateComponents([.year,.month,.day], from:self as Date)
        
        return(com.year!,com.month!,com.day!)
    }
    
    /*
     * 實用元組 獲取當前 時,分,秒
     *
     */
    func getHourMinSec() ->(hour:Int,min:Int,sec:Int) {
        let  callendar = Calendar.current
        let com  = callendar.dateComponents([.hour,.minute,.second], from:self as Date)
        
        return(com.hour!,com.minute!,com.second!)
    }
    
    /*
     * 獲取當前的 年-月-日
     */
    func getCurrentDateStr() -> String {
        let dateFmt = DateFormatter.init()
        dateFmt.dateFormat = "yyyy-MM-dd"
        
        return dateFmt.string(from: self as Date)
    }
    
    /*
     * 獲取當前的 年-月-日 時:分:秒
     */
    func getCurrentTimeStr() -> String {
        let dateFmt = DateFormatter.init()
        dateFmt.dateFormat = "yyyy-MM-dd HH:mm:ss"
        
        return dateFmt.string(from: self as Date)
    }

}


使用

            let date = Date.init()
//            let year = date.getYear();
//            let month = date.getMonth();
//            let day = date.getDay();
//
//            let hour = date.getHour()
//            let min = date.getMin()
//            let sec = date.getSecond()
            
            let yearMonthDay = date.getYearMonthDay()
            let year = yearMonthDay.year;
            let month = yearMonthDay.month;
            let day = yearMonthDay.day
            
            let hourMinSec = date.getHourMinSec()
            let hour = hourMinSec.hour
            let min = hourMinSec.min
            let sec = hourMinSec.sec
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末湖员,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌冈涧,老刑警劉巖栖袋,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拍顷,死亡現場離奇詭異,居然都是意外死亡塘幅,警方通過查閱死者的電腦和手機昔案,發(fā)現死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來电媳,“玉大人踏揣,你說我怎么就攤上這事∝遗遥” “怎么了捞稿?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拼缝。 經常有香客問我娱局,道長,這世上最難降的妖魔是什么咧七? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任衰齐,我火速辦了婚禮,結果婚禮上继阻,老公的妹妹穿的比我還像新娘耻涛。我一直安慰自己,他們只是感情好瘟檩,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布抹缕。 她就那樣靜靜地躺著,像睡著了一般芒帕。 火紅的嫁衣襯著肌膚如雪歉嗓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天背蟆,我揣著相機與錄音鉴分,去河邊找鬼哮幢。 笑死,一個胖子當著我的面吹牛志珍,可吹牛的內容都是我干的橙垢。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼伦糯,長吁一口氣:“原來是場噩夢啊……” “哼柜某!你這毒婦竟也來了?” 一聲冷哼從身側響起敛纲,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤喂击,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后淤翔,有當地人在樹林里發(fā)現了一具尸體翰绊,經...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年旁壮,在試婚紗的時候發(fā)現自己被綠了监嗜。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡抡谐,死狀恐怖裁奇,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情麦撵,我是刑警寧澤刽肠,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站厦坛,受9級特大地震影響五垮,放射性物質發(fā)生泄漏。R本人自食惡果不足惜杜秸,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一放仗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧撬碟,春花似錦诞挨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至其障,卻和暖如春银室,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工蜈敢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留辜荠,地道東北人。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓抓狭,卻偏偏與公主長得像伯病,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子否过,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內容

  • 發(fā)現 關注 消息 iOS 第三方庫午笛、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,066評論 4 62
  • 軟件環(huán)境: 主機配置: 一共m1, m2, m3這三部機, 每部主機的用戶名都為centos 參考資料: 說明: ...
    咸魚翻身記閱讀 2,575評論 0 5
  • 啊要卡頭C绻稹R┗恰! 簡歷時間厲害兔兔死投簡歷 嘉賓 吧誉察!
    竹風林海閱讀 167評論 0 1
  • 1 100天了与涡。 今天是我懷孕的第100天,我在想持偏,我是否也愛了你100天呢? 懷孕過后的我每天都會看許多公眾號和...
    大風兒閱讀 441評論 2 2