swift實現乙個簡單的考勤App

2021-08-21 06:59:52 字數 1784 閱讀 1609

為了給自己工作時間統計,做乙個簡單的考勤程式會很有效率。

@iboutlet weak var currenttimelb: uilabel!      //用於顯示當前時間

@iboutlet weak var recordtimelb: uilabel! //用於顯示時間差

除此外,使用兩個按鈕,第乙個是上班按鈕,按下儲存上班時間;另乙個是下班按鈕,按下計算時間差。

在viewdidload中設定時間顯示格式,並設定在currenttimelb中顯示當前時間,呼叫addcycletimer()函式實現走秒。

override func viewdidload()
走秒函式實現如下:

//呼叫走秒程式

fileprivate func addcycletimer()

以及:

//走秒程式

@objc private func handletimer ()

以下對兩個按鈕進行程式設計:

首先定義公共變數,firstdate用於儲存上班時間,seconddate用於儲存下班時間,格式均為int。這兩個變數作為公共變數在按鈕函式外宣告。

上班按鈕用於儲存firstdate變數,通過呼叫label中顯示的時間string轉換成date格式,呼叫其中從開始到現在的秒數並強轉成int,實現語句如下:

firstdate = int(dateformatter.date(from: datestring!)!.timeintervalsince1970)
下班按鈕中,首先用相同方式儲存下班時間seconddate。由於兩個函式已經得到各自秒數,所以在該按鈕中做差,可以得到兩個時間差(秒數):

let timediff=seconddate-firstdate
得到時間差後,呼叫顯示函式getstringfromtime()將秒數轉換成string格式用於顯示在recordtimelb:

recordtimelb.text = self.getstringfromtime(seconds: timediff)
顯示函式實現如下:

func getstringfromtime(seconds:int) -> string
其中可以通過顯示格式調整最後顯示的內容:

let format_time = nsstring(format: "您工作了%@小時%@分鐘%@秒",str_hour,str_minute,str_second)
終上,整個**如下:

import uikit

class viewcontroller: uiviewcontroller

//呼叫走秒程式

fileprivate func addcycletimer()

//走秒程式

@objc private func handletimer ()

func getstringfromtime(seconds:int) -> string

var firstdate = 0

var seconddate = 0

@ibaction func btngetcurrtime(_ sender: uibutton)

@ibaction func btncalctime(_ sender: any)

}

乙個簡單的Matrix實現

我們直接來看 吧 matrix.h pragma once include using namespace std 矩陣類 class matrix 下面是實現和測試的 matrix.cpp include matrix.h include include matrix matrix void ma...

LinkList的乙個簡單實現

鏈式線性表是資料結構裡很簡單但也是很常見的資料結構,相比順序儲存的線性表,可以更快的實現新增和刪除操作,但讀取速度比順序結構會慢。鏈式線性表的關鍵在於,每個資料儲存為節點形式。不僅僅儲存有資料,還有乙個引用 next 指向下乙個節點。鏈式結構還可以再擴充套件為雙向鍊錶 迴圈鍊錶等等。基本原理一樣,只...

實現乙個簡單的 shared ptr

智慧型指標的作用有如同指標,但會記錄有多少個 shared ptrs 共同指向乙個物件。這便是所謂的引用計數。一旦最後乙個這樣的指標被銷毀,也就是一旦某個物件的引用計數變為 0,這個物件會被自動刪除。shared ptr 的實現機制其實就是在拷貝構造時使用同乙份引用計數。同乙個 shared ptr...