15
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

大学生限定クリエイティブコミュニティGeekSalonAdvent Calendar 2021

Day 12

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

Last updated at Posted at 2021-12-11

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

手順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 実行結果

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

Dec-11-2021 00-27-16.gif

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

15
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?