Swift 現在日時を取得する NSDateComponent
今回は、swiftで、現在の日時を取得する方法を書きます。
まず、始めに現在の年を取得します。
このように書きます。
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let date = NSDate() let calendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)! let comps: NSDateComponents = calendar.components(NSCalendarUnit.YearCalendarUnit, fromDate: date) println(comps.year) } }
実行結果
ちなみに和暦を取得したい場合は、「・・・calendarIdentifier:NSGregorianCalendar」の部分を「・・・calendarIdentifier: NSJapaneseCalendar」に変更します。
let calendar = NSCalendar(calendarIdentifier: NSJapaneseCalendar)!
実行結果
「年」以外にも、「月」,「日」,「時」を取得したい場合は、この部分を・・・
let comps: NSDateComponents = calendar.components(NSCalendarUnit.YearCalendarUnit, fromDate: date)
このような感じに変更します。↓↓
let comps: NSDateComponents = calendar.components(NSCalendarUnit.YearCalendarUnit|NSCalendarUnit.MonthCalendarUnit|NSCalendarUnit.DayCalendarUnit|NSCalendarUnit.HourCalendarUnit|NSCalendarUnit.MinuteCalendarUnit|NSCalendarUnit.SecondCalendarUnit, fromDate: date) println("年 \(comps.year)") println("月 \(comps.month)") println("日 \(comps.day)") println("時 \(comps.hour)") println("分 \(comps.minute)") println("秒 \(comps.second)")
実行結果
「NSCalendarUnit.〜」のそれぞれは、
NSCalendarUnit.YearCalendarUnit ・・・「年」 NSCalendarUnit.MonthCalendarUnit ・・・「月」 NSCalendarUnit.DayCalendarUnit ・・・「日」 NSCalendarUnit.HourCalendarUnit ・・・「時」 NSCalendarUnit.MinuteCalendarUnit ・・・「分」 NSCalendarUnit.SecondCalendarUnit ・・・「秒」
となっています。
他にも、「曜日」,「一年の何週目」,「第何四半期」なども取得できます。
ちなみに「曜日」を取得するには、このように書きます。
let date = NSDate() let calendar = NSCalendar(calendarIdentifier: NSJapaneseCalendar)! let comps: NSDateComponents = calendar.components(NSCalendarUnit.WeekdayCalendarUnit,fromDate: date) println(comps.weekday)
実行結果
曜日の場合は、
1:日曜日
2:月曜日
3:火曜日
4:水曜日
5:木曜日
6:金曜日
7:土曜日
となっているようです。
これで、終わります。
参考サイト
[Swift]NSDateComponentで日付の各要素を取得 - Qiita
NSDateから曜日を取得する - ワテのブログ
※Swiftは、まだまだ勉強中ですので、間違っているかもしれません。間違っていましたら、ご指摘をお願いしますm(_ _)m
swiftで、タイマー(Timer)を使ってみる
今回は、Swiftでタイマー(Timer)を使う方法を書きます。
こんな感じに使います。
import UIKit class ViewController: UIViewController { //タイマー var timer: NSTimer! var cnt: Float = 0 override func viewDidLoad() { super.viewDidLoad() } @IBAction func timerBtn(sender: UIButton) { //タイマーを作る. timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "onUpdate:", userInfo: nil, repeats: true) } func onUpdate(timer : NSTimer){ cnt += 0.1 if cnt > 5.0 { if timer.valid { //timerを停止する. timer.invalidate() } } } }
上のプログラムは、「Button」を押すとタイマーがスタートします。
こちらの部分で、タイマーを作ります。
var timer: NSTimer! timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "onUpdate:", userInfo: nil, repeats: true)
第1引数の部分は、タイマーを発生させる間隔です。例えば、0.1なら0.1秒間隔になります。1.0なら1.0秒間隔です。
第2引数の「target」は、タイマー発生時に呼び出すメソッドがあるターゲットを指定します。通常は「self」で大丈夫だと思います。
第3引数の「selector」の部分は、タイマー発生時に呼び出すメソッドを指定します。今回の場合は「onUpdate」を呼び出しています。
ちなみに、「selector」の部分は「 Selector("onUpdate")」という書き方もできます。こういうふうに書く場合は、呼び出すメッソドの引数の部分を、
func onUpdate(timer : NSTimer)
このように変えてください。↓↓
func onUpdate()
第4引数の「userInfo」は、selectorで呼び出すメソッドに渡す情報を指定します。
第5引数の「repeats」は、タイマーの実行を繰り返すかどうかです。trueの場合、繰り返します。falseは1回のみです。
次に、こちらの部分です。
if timer.valid { timer.invalidate() }
「〜.valid」で、タイマーが動いているかどうかの判定ができます。
そして、「invalidate()」でタイマーを停止することができます。
これで、終わります。
参考サイト
Swiftでアニメーションとタイマーを使ってみた - Qiita
NSTimer - iPhoneアプリ開発の虎の巻
※Swiftは、まだまだ勉強中ですので、間違っているかもしれません。間違っていましたら、ご指摘をお願いしますm(_ _)m
Swift LineのURLスキームを使う
今回は、SwiftでLineのURLスキームを使う方法を書きます。
URLスキームって、何?という人は、こちらを見てください^^
①画像
画像をURLスキームを使って、Lineに送る方法を書きます。
この場合のURLスキームは「line://msg/image/」です。
コードはこちらです↓
var pasteboard: UIPasteboard = UIPasteboard.generalPasteboard() pasteboard.image = UIImage(named: "img.png") var imageURL: NSURL! = NSURL( string:"line://msg/image/" + pasteboard.name) if UIApplication.sharedApplication().canOpenURL(imageURL) { UIApplication.sharedApplication().openURL( imageURL ) }
こちらを実行すると、Lineのほうに飛びます。そして、送信する相手を選ぶと、ここで指定した画像が投稿されます。
※画像は、加工しています。
②テキスト + URL
今度は、テキストとURLをLineに送る方法を書きます。
この場合のURLスキームは「line://msg/text/」です。
コードはこちらです↓
var text: String! = "てすと\r\nhttp://www.google.com/" var encodeMessage: String! = text.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet()) var messageURL: NSURL! = NSURL( string: "line://msg/text/" + encodeMessage ) if (UIApplication.sharedApplication().canOpenURL(messageURL)) { UIApplication.sharedApplication().openURL( messageURL ) }
実行すると、こんな感じです。
テキストの場合は、そのまま投稿されずに、入力欄の所に入る形になるようです。
lineは、他にもURLスキームがあるので、色々試してみるのも面白いかもれませんw
これで、終わります。
参考サイト
知っておくとiPhoneをもっと便利に使える「URLスキーム」とは? - たのしいiPhone! AppBank
URLスキームを使ってLINEにメッセージをカンタンに送信する方法 | Halfway