String 如何在swift中删除字符串中的减号

String 如何在swift中删除字符串中的减号,string,swift,String,Swift,我有一个应用程序,可以计算两个日期之间的差异。如果用户输入的开始日期晚于结束日期,则结果为负数。这很好。但是,我的应用程序生成的字符串包含两个减号。我想去掉第二个减号,这样就不用说“-17周+4天”,而是说“-17周+4天” 我需要从结果中去掉第二个减号。我知道这是通过字符串操作实现的,但我不知道具体如何实现。在实现字符串操作之前,我需要首先检查输出的字符串是否为负值。如果有人能给我指出正确的方向,我将不胜感激 我需要实现这个字符串操作来删除第二个减号的方法如下: @IBAction func

我有一个应用程序,可以计算两个日期之间的差异。如果用户输入的开始日期晚于结束日期,则结果为负数。这很好。但是,我的应用程序生成的字符串包含两个减号。我想去掉第二个减号,这样就不用说“-17周+4天”,而是说“-17周+4天”

我需要从结果中去掉第二个减号。我知道这是通过字符串操作实现的,但我不知道具体如何实现。在实现字符串操作之前,我需要首先检查输出的字符串是否为负值。如果有人能给我指出正确的方向,我将不胜感激

我需要实现这个字符串操作来删除第二个减号的方法如下:

@IBAction func calculateWeeksAndDays(sender: UIButton) {

    if startDateTextField.text == "" || endDateTextField == "" {

        let alert2 = UIAlertController(title: "Oops!", message: "Please Select an End Date!", preferredStyle: UIAlertControllerStyle.Alert)
        alert2.addAction(UIAlertAction(title: "Close", style: UIAlertActionStyle.Default, handler: nil))
        self.presentViewController(alert2, animated: true, completion: nil)
    }
    else {

    let start = String(startDateTextField.text!)
    let end = String(endDateTextField.text!)
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "MM-dd-yyyy"



        guard let startDate = dateFormatter.dateFromString(start), endDate = dateFormatter.dateFromString(end) else {

            return
 }


    let calendar = NSCalendar.currentCalendar()
    let components = calendar.components([.Day], fromDate: startDate, toDate: endDate, options: [])
    let days = components.day
    let weeks = components.day / 7
    let weeksanddays = days % 7
    let newString = "\(weeks) weeks + \(weeksanddays) days"
    resultWeeksAndDays.text = newString
}
}

您可以使用
abs()
,它返回绝对值,这对
字符串非常有用

let newString = "\(weeks) weeks + \(abs(weeksanddays)) days"

检查是否有负面影响:

if weeks < 0 {
    // do stuffs
}
如果周数<0{
//做事
}
您可以使用
abs()
,它返回绝对值,这对
字符串非常有用

let newString = "\(weeks) weeks + \(abs(weeksanddays)) days"

检查是否有负面影响:

if weeks < 0 {
    // do stuffs
}
如果周数<0{
//做事
}

如果您可以在输出字符串中使用
而不是
+
,则可以使用
nsdatecomponentsformter
。它自动处理标志问题

let calendar = NSCalendar.currentCalendar()
let components = calendar.components([.Day], fromDate: startDate, toDate: endDate, options: [])

let formatter = NSDateComponentsFormatter()
formatter.unitsStyle = .Full
formatter.allowedUnits = [.Day]
let onlyDaysString = formatter.stringFromDateComponents(components)
formatter.allowedUnits = [.Day, .WeekOfMonth]
let daysAndWeeksString = formatter.stringFromDateComponents(components)

如果可以在输出字符串中使用
而不是
+
,则可以使用
nsdatecomponents格式
。它自动处理标志问题

let calendar = NSCalendar.currentCalendar()
let components = calendar.components([.Day], fromDate: startDate, toDate: endDate, options: [])

let formatter = NSDateComponentsFormatter()
formatter.unitsStyle = .Full
formatter.allowedUnits = [.Day]
let onlyDaysString = formatter.stringFromDateComponents(components)
formatter.allowedUnits = [.Day, .WeekOfMonth]
let daysAndWeeksString = formatter.stringFromDateComponents(components)