質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

263閲覧

NSDateのExtension

gtime

総合スコア51

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2017/08/20 09:38

この記事のコードをSwift3にして書いているのですが、
22行目でこのエラーが出てしまいます
イメージ説明
どのようにすればエラーを解決できるのでしょうか?
ご教授お願いいたします。

swift

1import Foundation 2import UIKit 3extension NSDate { 4 func toFuzzy() -> String { 5 6 let now = Date() 7 8 let cal = NSCalendar(calendarIdentifier: NSCalendar.Identifier.gregorian)! 9 10 //取得するコンポーネントを決める. 11 let components = cal.components( 12 [ 13 NSCalendar.Unit.year, 14 NSCalendar.Unit.month, 15 NSCalendar.Unit.day, 16 NSCalendar.Unit.hour, 17 NSCalendar.Unit.minute, 18 NSCalendar.Unit.second, 19 NSCalendar.Unit.weekday 20 ],from: now) 21 22 let diffSec = components.second + components.minute * 60 + components.hour * 3600 + components.day * 86400 + components.year * 31536000 23 var result = String() 24 25 if diffSec < 60 { 26 result = "\(diffSec)秒前" 27 } else if diffSec < 3600 { 28 result = "\(diffSec/60)分前" 29 } else if diffSec < 86400 { 30 result = "\(diffSec/3600)時間前" 31 } else if diffSec < 2764800 { 32 result = "\(diffSec/86400)日前" 33 } else { 34 let dateFormatter = DateFormatter() 35 36 if components.year! > 0 { 37 dateFormatter.dateFormat = "yyyy年M月d日" 38 result = dateFormatter.string(from: self as Date) 39 } else { 40 dateFormatter.dateFormat = "M月d日" 41 result = dateFormatter.string(from: self as Date) 42 } 43 } 44 45 return result 46 } 47 48 49 50} 51extension NSDate { 52 static func parse(str: String) -> NSDate? { 53 let format = DateFormatter() 54 let calendar = NSCalendar(calendarIdentifier: NSCalendar.Identifier.gregorian) 55 format.calendar = calendar! as Calendar 56 format.locale = NSLocale.system 57 format.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ" 58 return format.date(from: str) as! NSDate 59 } 60} 61

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

swift

1 var diffSec: Int = components.second! + components.minute! * 60 + components.hour! * 3600 2 diffSec += components.day! * 86400 + components.year! * 31536000

投稿2017/08/20 09:51

izkn

総合スコア1698

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問