标签: nscalendar

NSDate为该月的第一天

这是一个非常简单的概念,但到目前为止,我一直无法找到一个优雅的(和日历区域独立)解决方案.我需要找到一个任意的月份的第一天NSDate.例如,给定一个任意NSDate(arbitraryDate)将返回另一个NSDate对象(让我们调用它firstDayOfMonthDate),它代表该月的第一天arbitraryDate.时间组件并不重要,因为我只需要在该月的第一天使用NSDate对象(尽管为了整洁,如果时间刚刚归零,它将是有用的).

在此先感谢您的任何帮助.

iphone cocoa-touch nsdate nscalendar

28
推荐指数
2
解决办法
2万
查看次数

我如何在swift中获得String当前月份:

我需要得到可能作为当月,但我做不到.我怎样才能做到这一点.

   let date = NSDate()
    let calendar = NSCalendar.currentCalendar()
    let components = calendar.components([.Day , .Month , .Year], fromDate: date)

    let year =  components.year
    let month = components.month
    let day = components.day
Run Code Online (Sandbox Code Playgroud)

我做了这个,但没有奏效.

nsdate nscalendar ios swift

27
推荐指数
3
解决办法
4万
查看次数

如何设置现有的NSDate时间?

如何设置现有NSDate的时间?

那就是我有一个约会(比如说当前日期/时间),但是想把它设置为特定的时间(例如11.23am).在目标C中最快的方法是什么?

我在看NSCalendar,看的方法,如dateByAddingComponents:toDate:options:,和dateFromComponents:,但这些似乎并没有很切中要害了什么,我需要在这里.例如:

  1. dateFromComponents: - 我必须解决所有这些工作的组件,这似乎有点矫枉过正
  2. dateByAddingComponents:toDate:options: - 我不想在我的情况下添加,而是"设置"时间.

objective-c nsdate nscalendar nsdatecomponents

26
推荐指数
3
解决办法
3万
查看次数

Swift 2.0日历组件错误

嗨,我在swift 2.0中遇到此错误

无法使用类型'(NSCalendarUnit,fromDate:NSDate?,toDate:NSDate?,options:nil)的参数列表调用'components'

var hoy = dataFormatter.stringFromDate(NSDate())
        var despues = dataFormatter.stringFromDate(fecha)
        var calHoy = dataFormatter.dateFromString(hoy)
        var calcDesp = dataFormatter.dateFromString(despues)
        let cal = NSCalendar.currentCalendar()
        let unit:NSCalendarUnit = .Day
        let components = cal.components(unit, fromDate: calcDesp, toDate: calHoy, options: nil) 
Run Code Online (Sandbox Code Playgroud)

nscalendar ios swift

24
推荐指数
1
解决办法
1万
查看次数

使用NSDate()在swift中创建未来日期

我收到一个错误:"在调用中缺少参数'coder'的参数"以获取以下代码:

var components = NSDateComponents()     
components.setValue(1,forComponent: NSCalendarUnit.CalendarUnitMonth);
var expirationDate = NSCalendar.currentCalendar().dateByAddingComponents(components,       toDate: NSDate(),options:0)
Run Code Online (Sandbox Code Playgroud)

文档要求:

NSCalendar.currentCalendar().dateByAddingComponents(<#comps: NSDateComponents?#>, toDate: <#NSDate?#>, options: <#NSCalendarOptions#>)
Run Code Online (Sandbox Code Playgroud)

任何人都能看到我错过的东西吗?我没有看到名为'coder'的参数需要.

nscalendar swift

23
推荐指数
3
解决办法
2万
查看次数

两个Date对象之间的所有日期(Swift)

我正在创建一个日期NSDateComponents().

let startDate = NSDateComponents()
startDate.year = 2015
startDate.month = 9
startDate.day = 1
let calendar = NSCalendar.currentCalendar()
let startDateNSDate = calendar.dateFromComponents(startDate)!
Run Code Online (Sandbox Code Playgroud)

...现在我要打印自startDate今天以来的所有日期,NSDate().我已经尝试过玩NSCalendarUnit,但它只输出整个差异,而不是单个日期.

let unit: NSCalendarUnit = [.Year, .Month, .Day, .Hour, .Minute, .Second]
let diff = NSCalendar.currentCalendar().components(unit, fromDate: startDateNSDate, toDate: NSDate(), options: [])
Run Code Online (Sandbox Code Playgroud)

如何在两个Date对象之间打印所有日期?

编辑2019

与此同时,课程的命名已经改变 - NSDate现在只是Date.NSDateComponents现在被称为DateComponents.NSCalendar.currentCalendar()现在只是Calendar.current.

nsdate nsdateformatter nscalendar nsdatecomponents swift

20
推荐指数
4
解决办法
2万
查看次数

如何快速获得本周的本周日期

我想要获得周一的本周日期.这在我的表格视图中被视为一周的第一天.我还需要获得本周的周日.在我的表视图中,这被视为一周的最后一天.

目前的尝试:

let date = NSDate()
let calendar = NSCalendar.currentCalendar()
calendar.firstWeekday = 1
//attempt to changefirstday

let dateFormatter = NSDateFormatter()
let theDateFormat = NSDateFormatterStyle.ShortStyle
let theTimeFormat = NSDateFormatterStyle.ShortStyle
dateFormatter.dateStyle = theDateFormat
dateFormatter.timeStyle = theTimeFormat

let currentDateComponents = calendar.components([.YearForWeekOfYear, .WeekOfYear ], fromDate: date)
let startOfWeek = calendar.dateFromComponents(currentDateComponents)
print("startOfWeek is \(startOfWeek)")
let stringDate = dateFormatter.stringFromDate(startOfWeek!)
print("string date is \(stringDate)") //This is returning Sunday's date
Run Code Online (Sandbox Code Playgroud)

date nscalendar swift

17
推荐指数
4
解决办法
2万
查看次数

NSDateComponents语法的差异?

我一直在使用Swift中的时钟应用程序和Xcode 6.3.2以下代码构建并运行得很好.

// Get current time
let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute | .CalendarUnitSecond | .CalendarUnitNanosecond, fromDate: date)
let hour = components.hour % 12
let minute = components.minute
let second = components.second
let nanosecond = components.nanosecond
Run Code Online (Sandbox Code Playgroud)

但是,当我在Xcode 7.0 beta中加载相同的项目并且不做任何更改时,我在calendar.components行上出现错误.

Could not find member 'CalendarUnitHour'
Run Code Online (Sandbox Code Playgroud)

我查看了文档,并且不推荐使用所有NSCalendarUnit常量(在iOS 8.0中说),但组件方法的方法描述仍然表示要使用它们.

我已经玩过其他NSCalendarUnit自动完成值,但没有产生工作代码,我在网上找不到任何最近的例子,也许是因为这是全新的.

有人知道新的正确方法吗?

nscalendar nsdatecomponents swift swift2

16
推荐指数
1
解决办法
6602
查看次数

比较两个相同日期/时间的NSDates

date1 == date2不是比较有效的方法是什么?如果没有,那么正确的选择是什么?

这是我的代码:

- (NSDate*) dateWithNoTime {
    unsigned int flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
    NSCalendar* calendar = [NSCalendar currentCalendar];
    NSDateComponents* components = [calendar components:flags fromDate:self];
    NSDate* dateOnly = [calendar dateFromComponents:components];
    return dateOnly;
}

- (BOOL) sameDayAsDate:(NSDate*)dateToCompare {
    NSDate *date1 = [self dateWithNoTime];
    NSDate *date2 = [dateToCompare dateWithNoTime];
    return date1 == date2;       // HERE IS WHERE THINGS SEEM TO FAIL

}
Run Code Online (Sandbox Code Playgroud)

iphone objective-c nsdate nscalendar nsdatecomponents

14
推荐指数
3
解决办法
2万
查看次数

自定义报警的UILocalNotification重复间隔(太阳,周一,周二,周三,星期四,星期五,坐着)

UILocalNotification用于报警目的.我有一个基于工作日重复的自定义选项(sun,mon,tue,wed,thu,fri,sat).许多应用程序都执行了此过程.我最好的尝试了我的水平.但我无法让它发挥作用.请各位帮帮我....

iphone nscalendar ipad ios uilocalnotification

12
推荐指数
1
解决办法
2万
查看次数