swift4 UIDatePicker가 지정한 연월일부터 연령을 출력하는 코드

9577 단어 XcodeSwift4
전회, 「swift4 UIDatePicker로부터 UITextfield에 출력까지」로 기사를 썼기 때문에
그 후,

UIDatePicker가 지정한 연월일부터 나이를 출력하는 코드
htps : // 코 m / 료마 D 사카모토 / / ms / 아 b4 아 031706 아 8133f193

에 대해 씁니다.

그 코드가 이 녀석. ※전회의 기사를 참조하면서 부디.



BirthdayViewController.swift
import UIKit

class BirthdayViewController: UIViewController {

    //UITextfieldに紐づいてる
    @IBOutlet weak var dateField: UITextField!

    //UIDatePickerを定義するための変数
    var datePicker: UIDatePicker = UIDatePicker()


    override func viewDidLoad() {
        super.viewDidLoad()

        // ピッカー設定
        datePicker.datePickerMode = UIDatePickerMode.date
        datePicker.timeZone = NSTimeZone.local
        datePicker.locale = Locale.current
        dateField.inputView = datePicker

        // 決定バーの生成
        let toolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: view.frame.size.width, height: 35))
        let spacelItem = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil)
        let doneItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(done))
        toolbar.setItems([spacelItem, doneItem], animated: true)

        // インプットビュー設定(紐づいているUITextfieldへ代入)
        dateField.inputView = datePicker
        dateField.inputAccessoryView = toolbar
    }

    // UIDatePickerのDoneを押したら発火
    @objc func done() {
        dateField.endEditing(true)

        // 日付のフォーマット
        let formatter = DateFormatter()

        //"yyyy年MM月dd日"を"yyyy/MM/dd"したりして出力の仕方を好きに変更できるよ
        formatter.dateFormat = "yyyy年MM月dd日"

        //(from: datePicker.date))を指定してあげることで
        //datePickerで指定した日付が表示される
        dateField.text = "\(formatter.string(from: datePicker.date))"


        // 本当はNSDate()じゃない方がいいと思う。
        let now = Date()
        print("今日は\(now))です")

        let Age = now.timeIntervalSince(datePicker.date)//生まれてからの秒数

        let myAge2 = Int(Age)//秒齢
        let myAge3 = Double(myAge2)
        let myAge4 = Int(myAge2/60/60/24)//日齢
        let myAge5 = Int(myAge3/60/60/24/365.24)//年齢_端数の切り捨て:満年齢:整数Integer

        //ログから出力されていることを確認、
        print("年齢は満\(myAge5)歳です")



    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

실제의 picker로 확인하면, 이런 느낌으로 출력되고 있을 것.


그리고는 label로 출력하고 싶은 text로 출력하고 싶은 무제한입니다.

좋은 웹페이지 즐겨찾기