swift - 写一个实例方法提前那些分钟的时间

标签 swift class methods time instance

我是 swift 的新手,我正在自学。我知道通常会有示例代码,但我非常迷茫。我正在尝试编写一个实例方法 advance ,它将放置在 ClockTime 类中。该方法接受分钟数作为其参数,并将您的对象及时向前移动该分钟数。经过的分钟数可以是任何非负数,甚至可以是一个很大的数字,例如 500 或 1000000。如有必要,您的对象可能会换行到下一个小时或一天,或者它可能会从早上 ("AM") 换行到晚上(“PM”),反之亦然。

注意:ClockTime 对象不关心今天是星期几;如果从晚上 11:59 提前 1 分钟,则变为凌晨 12:00。

例如,以下调用将产生以下结果:

ClockTime time = new ClockTime(6, 27, "PM");

time.advance(1);       //  6:28 PM

time.advance(30);      //  6:58 PM

最佳答案

你可能想要这样的东西:

struct ClockTime {
    var hour: Int {
        return components.hour!
    }
    var minute: Int {
        return components.minute!
    }

    private var internalTime = Date()
    private var components: DateComponents {
        return Calendar.current.dateComponents([.hour, .minute], from: internalTime)
    }

    mutating func advance(by minutes: TimeInterval) {
        internalTime.addTimeInterval(minutes * 60)
    }
}

关于swift - 写一个实例方法提前那些分钟的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40332443/

相关文章:

php - Serp 跟踪器 PHP 脚本

swift - 在 Swift 中高效地将 Int16 数据写入内存?

ios - 在 Swift 3 中更改状态栏背景颜色

swift - 如何将相机或图库拍摄的图像添加到按钮?

php - 类名中的下划线

ruby - 如何将方法动态定义为私有(private)?

swift - 添加枚举后失去了对 Codable 的一致性

class - Maven fatal error 编译 : directory not found: maven-compiler-plugin

function - 对于良好的日常习惯来说,哪一个特征最重要?

java - 如何在 Java 中概括方法调用(以避免代码重复)