swift实现一个简单的考勤App

编程入门 行业动态 更新时间:2024-10-26 19:32:49

swift实现一个简单的<a href=https://www.elefans.com/category/jswz/34/1762901.html style=考勤App"/>

swift实现一个简单的考勤App

为了给自己工作时间统计,做一个简单的考勤程序会很有效率。

在这个简单的App中,使用两个Label用于显示:

    @IBOutlet weak var currentTimeLb: UILabel!      //用于显示当前时间@IBOutlet weak var recordTimeLb: UILabel!       //用于显示时间差

除此外,使用两个按钮,第一个是上班按钮,按下存储上班时间;另一个是下班按钮,按下计算时间差。

在viewDidLoad中设定时间显示格式,并设定在currentTimeLb中显示当前时间,调用addCycleTimer()函数实现走秒。

    override func viewDidLoad() {super.viewDidLoad()//显示格式let dateFormatter = DateFormatter()dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"//初始显示系统当前时间let date = NSDate()let strCurrentTime = dateFormatter.string(from: date as Date) as StringcurrentTimeLb.text = strCurrentTime;//走秒,继续显示addCycleTimer()}

走秒函数实现如下:

    //调用走秒程序fileprivate func addCycleTimer() {let timer = Timer(timeInterval: 1.0, target: self, selector: #selector(self.handleTimer), userInfo: nil, repeats: true)RunLoop.main.add(timer, forMode:RunLoopModemonModes)}

以及:

    //走秒程序@objc private func handleTimer (){//显示格式let dateFormatter = DateFormatter()dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"let currentDate = Date(timeIntervalSinceNow: 1)currentTimeLb.text = dateFormatter.string(from: currentDate)}

以下对两个按钮进行编程:

首先定义公共变量,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 str_hour = NSString(format: "%02ld", seconds/3600)let str_minute = NSString(format: "%02ld", (seconds%3600)/60)let str_second = NSString(format: "%02ld", seconds%60)let format_time = NSString(format: "您工作了%@小时%@分钟%@秒",str_hour,str_minute,str_second)return format_time as String}

其中可以通过显示格式调整最后显示的内容:

let format_time = NSString(format: "您工作了%@小时%@分钟%@秒",str_hour,str_minute,str_second)

终上,整个代码如下:

import UIKitclass ViewController: UIViewController {@IBOutlet weak var currentTimeLb: UILabel!      //用于显示当前时间@IBOutlet weak var recordTimeLb: UILabel!       //用于显示时间差override func viewDidLoad() {super.viewDidLoad()//显示格式let dateFormatter = DateFormatter()dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"//初始显示系统当前时间let date = NSDate()let strCurrentTime = dateFormatter.string(from: date as Date) as StringcurrentTimeLb.text = strCurrentTime;//走秒,继续显示addCycleTimer()}//调用走秒程序fileprivate func addCycleTimer() {let timer = Timer(timeInterval: 1.0, target: self, selector: #selector(self.handleTimer), userInfo: nil, repeats: true)RunLoop.main.add(timer, forMode:RunLoopModemonModes)}//走秒程序@objc private func handleTimer (){//显示格式let dateFormatter = DateFormatter()dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"let currentDate = Date(timeIntervalSinceNow: 1)currentTimeLb.text = dateFormatter.string(from: currentDate)}func getStringFromTime(seconds:Int) -> String {let str_hour = NSString(format: "%02ld", seconds/3600)let str_minute = NSString(format: "%02ld", (seconds%3600)/60)let str_second = NSString(format: "%02ld", seconds%60)let format_time = NSString(format: "您工作了%@小时%@分钟%@秒",str_hour,str_minute,str_second)return format_time as String}var firstDate = 0var secondDate = 0@IBAction func btnGetCurrTime(_ sender: UIButton) {recordTimeLb.text=currentTimeLb.text//记录上班时间let dateString = currentTimeLb.text//显示格式let dateFormatter = DateFormatter()dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"//定义变量firstDate = Int(dateFormatter.date(from: dateString!)!.timeIntervalSince1970)}@IBAction func btnCalcTime(_ sender: Any) {//记录下班时间let dateString = currentTimeLb.text//显示格式let dateFormatter = DateFormatter()dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"//下班时间转为秒数secondDate = Int(dateFormatter.date(from: dateString!)!.timeIntervalSince1970)let timeDiff=secondDate-firstDaterecordTimeLb.text = self.getStringFromTime(seconds: timeDiff)} 
}

更多推荐

swift实现一个简单的考勤App

本文发布于:2024-02-17 07:55:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1693252.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:考勤   简单   swift   App

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!