현재 시각에 분수를 빠르게 추가하는 방법
저는 Swift에 처음 와서 스케줄러를 시도하고 있습니다.시작 시간이 선택되어 있고 시작 시간에 5분(또는 그 배수)을 더하여 표시해야 합니다.UILabel
?
@IBAction func timePickerClicked(sender: UIDatePicker) {
var dateFormatter = NSDateFormatter()
dateFormatter.timeStyle = NSDateFormatterStyle.ShortStyle
var dateStr = dateFormatter.stringFromDate(startTime.date)
let sttime = dateStr
startTimeDisplay.text = dateStr
}
// How to advance time by 5 minutes for each section based on the start time selected and display time
// section 1 = start time + 5
// section 2 = start time + 10*
두 가지 접근법:
Swift 3 이상에서 및 .를 사용합니다.
let calendar = Calendar.current let date = calendar.date(byAdding: .minute, value: 5, to: startDate)
그냥 사용하다
+
를 추가하려면 연산자(을 참조)를 선택합니다(특정 초수).예를 들어, 5분을 추가하려면 다음을 수행할 수 있습니다.let date = startDate + 5 * 60
(주문 내용은 다음과 같습니다.왼쪽 날짜
+
오른쪽에는 초가 표시됩니다.)필요에 따라서, 을 사용할 수도 있습니다.
let date = startDate.addingTimeInterval(5 * 60)
결론은,+
/addingTimeInterval
는 단순한 시나리오에서는 가장 간단합니다만, 보다 큰 단위(일, 월 등)를 추가하는 경우는, 캘린더 계산을 사용하는 것이 좋습니다.이는 일광 절약 시간에 맞추어 조정되기 때문입니다.addingTimeInterval
하지 않습니다.
Swift 2 렌테이션에 대해서는 이 답변의 이전 버전을 참조하십시오.
캘린더의 방법을 사용할 수 있습니다.
func date(byAdding component: Calendar.Component, value: Int, to date: Date, wrappingComponents: Bool = default) -> Date?
덧셈하다Calendar.Component
누구에게나Date
날짜 확장자를 만들어 x분을 추가할 수 있습니다.UIDatePicker
날짜:
Xcode 8 및 Xcode 9 • Swift 3.0 및 Swift 4.0
extension Date {
func adding(minutes: Int) -> Date {
return Calendar.current.date(byAdding: .minute, value: minutes, to: self)!
}
}
다음으로 확장 방식을 사용하여 발신인(UIDatePicker)에 분을 추가할 수 있습니다.
let section1 = sender.date.adding(minutes: 5)
let section2 = sender.date.adding(minutes: 10)
놀이터 테스트:
Date().adding(minutes: 10) // "Jun 14, 2016, 5:31 PM"
Swift 4:
// 현재까지 5분 추가
let date = startDate.addingTimeInterval(TimeInterval(5.0 * 60.0))
// 날짜에서 5분 빼기
let date = startDate.addingTimeInterval(TimeInterval(-5.0 * 60.0))
Swift 5.1:
// subtract 5 minutes from date
transportationFromDate.addTimeInterval(TimeInterval(-5.0 * 60.0))
extension Date {
func withAddedMinutes(minutes: Double) -> Date {
addingTimeInterval(minutes * 60)
}
func withAddedHours(hours: Double) -> Date {
withAddedMinutes(minutes: hours * 60)
}
}
use 케이스
let anHourFromNow = Date().withAddedHours(hours: 1)
let aMinuteFromNow = Date().withAddedMinutes(minutes: 1)
swift 4 또는 5로 사용 가능
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd H:mm:ss"
let current_date_time = dateFormatter.string(from: date)
print("before add time-->",current_date_time)
//adding 5 miniuts
let addminutes = date.addingTimeInterval(5*60)
dateFormatter.dateFormat = "yyyy-MM-dd H:mm:ss"
let after_add_time = dateFormatter.string(from: addminutes)
print("after add time-->",after_add_time)
출력:
before add time--> 2020-02-18 10:38:15
after add time--> 2020-02-18 10:43:15
다음을 사용하여 날짜 계산을 수행할 수 있습니다.NSDateComponents
. 예:
import Foundation
let comps = NSDateComponents()
comps.minute = 5
let cal = NSCalendar.currentCalendar()
let r = cal.dateByAddingComponents(comps, toDate: NSDate(), options: nil)
놀이터에서 먹어보면 알 수 있는 것 같아요.
NSDate.init
와 함께timeIntervalSinceNow
:
예:
let dateAfterMin = NSDate.init(timeIntervalSinceNow: (minutes * 60.0))
이 작은 확장자를 저장합니다.
extension Int {
var seconds: Int {
return self
}
var minutes: Int {
return self.seconds * 60
}
var hours: Int {
return self.minutes * 60
}
var days: Int {
return self.hours * 24
}
var weeks: Int {
return self.days * 7
}
var months: Int {
return self.weeks * 4
}
var years: Int {
return self.months * 12
}
}
그런 다음 다음과 같이 직관적으로 사용할 수 있습니다.
let threeDaysLater = TimeInterval(3.days)
date.addingTimeInterval(threeDaysLater)
스위프트 3:
let minutes: TimeInterval = 1 * 60
let nowPlusOne = Date() + minutes
가장 간단한 건
let minutes = Date(timeIntervalSinceNow:(minutes * 60.0))
unix 타임스탬프를 원하는 경우
let now : Date = Date()
let currentCalendar : NSCalendar = Calendar.current as NSCalendar
let nowPlusAddTime : Date = currentCalendar.date(byAdding: .second, value: accessTime, to: now, options: .matchNextTime)!
let unixTime = nowPlusAddTime.timeIntervalSince1970
언급URL : https://stackoverflow.com/questions/29465205/how-to-add-minutes-to-current-time-in-swift
'programing' 카테고리의 다른 글
오브젝트 속성을 기반으로 오브젝트 목록을 정렬하려면 어떻게 해야 합니까? (0) | 2023.04.10 |
---|---|
Git에서 이전(마지막이 아님) 커밋에 변경된 파일을 추가하는 방법 (0) | 2023.04.10 |
iOS에서 디바이스 제조 및 모델을 얻는 방법 (0) | 2023.04.10 |
JSON을 해석하고 값을 어레이로 변환하는 방법 (0) | 2023.04.05 |
오류 수정 방법: ./node_modules/@react-leaflet/core/esm/path.js 10:41 모듈 해석 실패:예기치 않은 토큰(10:41) (0) | 2023.04.05 |