Ios 增加Swift中月份和年份的值
我使用它来获取我的月份代码值Ios 增加Swift中月份和年份的值,ios,swift,Ios,Swift,我使用它来获取我的月份代码值 @IBAction func increasemonth(_ sender: Any) { let currentmonth = Calendar.current.component(.month, from: Date()) let increasemonth = currentmonth + 1 print(increasemonth) // 2 } @IBAction func decreasemont
@IBAction func increasemonth(_ sender: Any) {
let currentmonth = Calendar.current.component(.month, from: Date())
let increasemonth = currentmonth + 1
print(increasemonth) // 2
}
@IBAction func decreasemonth(_ sender: Any) {
let currentmonth = Calendar.current.component(.month, from: Date())
let decreasemonth = currentmonth - 1
print(decreasemonth)// 0
}
我想用这个月来表示1,2,3…12,然后年份值在增加按钮中更改为2021年,也可以减少月份值,例如1,12,11…2,然后年份值更改为2019年。您可以使用以下日期扩展
extension Date {
/// return yesterday date
var yesterday: Date {
return Calendar.current.date(byAdding: .day, value: -1, to: self)!
}
/// return tomorrow date
var tomorrow: Date {
return Calendar.current.date(byAdding: .day, value: 1, to: self)!
}
/// return day from date
var day: Int {
return Calendar.current.component(.day, from: self)
}
/// return month from date
var month: Int {
return Calendar.current.component(.month, from: self)
}
/// return year from date
var year: Int {
return Calendar.current.component(.year, from: self)
}
/// return previous month date
var previousMonthDate: Date {
return Calendar.current.date(byAdding: .month, value: -1, to: self)!
}
/// return next month date
var nextMonthDate: Date {
return Calendar.current.date(byAdding: .month, value: 1, to: self)!
}
/// return true is it is last day of month
var isLastDayOfMonth: Bool {
return tomorrow.month != month
}
/// return start date of month
var startOfMonth: Date {
return Calendar.current.date(from: Calendar.current.dateComponents([.year, .month], from: Calendar.current.startOfDay(for: self)))!
}
/// return end date of month
var endOfMonth: Date {
return Calendar.current.date(byAdding: DateComponents(month: 1, day: -1), to: self.startOfMonth)!
}
/// return start date of last month
var startOfLastMonth: Date {
let components:NSDateComponents = Calendar.current.dateComponents([.year, .month], from: self) as NSDateComponents
components.month -= 1
return Calendar.current.date(from: components as DateComponents)!
}
/// return end date of last month
var endOfLastMonth: Date {
var components = Calendar.current.dateComponents([.year, .month], from: self)
components.day = 1
components.day! -= 1
return Calendar.current.date(from: components)!
}
/// return last week date
var last7Day: Date {
return Calendar.current.date(byAdding: .day, value: -7, to: self)!
}
/// return last month date
var last30Day: Date {
return Calendar.current.date(byAdding: .day, value: -30, to: self)!
}
/// return last 6 month date
var last6Month: Date {
return Calendar.current.date(byAdding: .month, value: -6, to: self)!
}
/// return last 3 month date
var last3Month: Date {
return Calendar.current.date(byAdding: .month, value: -3, to: self)!
}
/// return date by adding numbner of days
func dateByAdding(days: Int) -> Date {
return (Calendar.current as NSCalendar).date(byAdding: .day, value: days, to: self, options: [])!
}
func startOfWeek(weekday: Int?) -> Date {
var cal = Calendar.current
var component = cal.dateComponents([.yearForWeekOfYear, .weekOfYear], from: self)
component.to12am()
cal.firstWeekday = weekday ?? 1
return cal.date(from: component)!
}
func endOfWeek(weekday: Int) -> Date {
let cal = Calendar.current
var component = DateComponents()
component.weekOfYear = 1
component.day = -1
component.to12pm()
return cal.date(byAdding: component, to: startOfWeek(weekday: weekday))!
}
var dayOfWeek: Int {
var dayOfWeek = Calendar.current.component(.weekday, from: self) + 1 - Calendar.current.firstWeekday
if dayOfWeek <= 0 {
dayOfWeek += 7
}
return dayOfWeek
}
var startOfWeek: Date {
return Calendar.current.date(byAdding: DateComponents(day: -(self.dayOfWeek + 1)), to: self)!
}
var endOfWeek: Date {
return Calendar.current.date(byAdding: DateComponents(day: 6), to: self.startOfWeek)!
}
var startOfQuarter: Date {
let quarter = (Calendar.current.component(.month, from: self) - 1) / 3 + 1
return Calendar.current.date(from: DateComponents(year: Calendar.current.component(.year, from: self), month: (quarter - 1) * 3 + 1))!
}
var endOfQuarter: Date {
return Calendar.current.date(byAdding: DateComponents(month: 3, day: -1), to: self.startOfQuarter)!
}
var startOfYear: Date {
return Calendar.current.date(from: Calendar.current.dateComponents([.year], from: self))!
}
var endOfYear: Date {
return Calendar.current.date(from: DateComponents(year: Calendar.current.component(.year, from: self), month: 12, day: 31))!
}
var hour: Int {
return Calendar.current.component(.hour, from: self)
}
var minute: Int {
return Calendar.current.component(.minute, from: self)
}
var seconds: Int {
return Calendar.current.component(.second, from: self)
}
var nanosecond: Int {
return Calendar.current.component(.nanosecond, from: self)
}
func stringWith(format: String) -> String {
let formatter = DateFormatter()
formatter.dateFormat = format
return formatter.string(from: self)
}
public var currentTimeStamp: String {
return "\(timeIntervalSince1970 * 1000)"
}
}
谢谢…但是让我知道我的循环过程。。相同的值附加到我上一个月的值中,即仅增加+1或-1到12….您需要设置一个条件,该月>0&&月,那么年呢。。在Android中,他们提供..单击增加/减少月份以及年份值,您需要在
Date
对象中添加+1或-1作为月份。
let date = Date()
print("month: \(date.month)") //you can do something with month
print("year: \(date.year)") //you can do something with year
print("hour: \(date.hour)") //you can do something with hour