為了給自己工作時間統計,做乙個簡單的考勤程式會很有效率。
@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...