経過時間を計測してグラフを出力する①


経過時間を計測してグラフを出力する機能を実装していくうう

手順1.2の二つの記事に分けて記述します。

手順
1.時間を計測する関数を作成し、結果を配列に加える
2.経過時間の配列からグラフを作成し表示

1.時間を計測する関数を作成し、結果を配列に加える

1.1 まず初めに、変数・パーツをいくつか宣言します。

変数名 型・クラス 役割
start Bool 経過時間を計測しているのかどうかを判断する
times Doubleの配列 経過時間を格納する配列
startTime Date 計測開始時間を格納する変数
button UIButton 時間を計測する関数を呼び出すためのボタン
import UIKit
class ViewController: UIViewController {

    //時間を計測中か判断する理論値を入れる変数
    var start:Bool?
    //経過時間を格納する配列
    var times : [Double] = []
    //計測開始時間を格納する変数
    var startTime = Date()
    //計測ボタン
    @IBOutlet var button : UIButton!

1.2 時間を計測する関数を作成

詳細はコードにコメントアウトとして記述。

    @IBAction func button(_ sender: Any) {

        if start != true{
            //時間を計測していなかったら行う処理
            startTime = Date()
            //startをTrueにすることで時間を計測中にする
            self.start = true
            button.setTitle("計測中", for: .normal)
        }else{
            //時間を計測していたら行う処理

            //ボタンを押した時点の時刻
            let endTime = Date()

            //DateクラスのtimeIntervalSince()メソッドを利用し差分を出す
            let time = Double(endTime.timeIntervalSince(startTime))
            //だした差分を配列に格納
            times.append(time)
            //startをTrueにすることで時間を計測していないことにする
            self.start = false
            button.setTitle("計測中じゃないよ", for: .normal)
        }
    }

}

Double(endTime.timeIntervalSince(startTime))の部分だけ捕捉します。
今回はDateクラスのtimeIntervalSince()を用いて、計測時間を出力しています。

🌟使い方🌟

DateクラスのインスタンスA.timeIntervalSince(引数:DateクラスのインスタンスB)

のように記述することでDateクラスのインスタンスAと引数であるDateクラスのインスタンスBの差分が出力されます。

1.3 実行結果

以下のように経過時間が配列に格納されるようになります。

手順2はこっち経過時間の配列からグラフを作成し表示