-1
votes

Pourquoi je reçois une erreur sur la comparaison de deux dates

J'essaie de comparer deux dates, l'une est du serveur et d'autres est mon temps de périphérique local.

Ceci est un extrait de code. strong> p>

let deviceDate = Date()

let calendar = Calendar.current
let dateNewServer = calendar.date(byAdding: .minute, value: 120, to: dateFromServer!)

//deviceDate -> 2019-06-25 08:28:03 +0000
//dateFromServer -> 2019-06-21 20:00:00 +0000
//dateNewServer -> 2019-06-21 22:00:00 +0000

if (deviceDate >= dateFromServer) && (deviceDate <= dateNewServer){
    print("Live Matches")
}else{
    print("Old/Upcoming Matches")
}

  

           


2 commentaires

Quelle est la valeur de datefromserver ?


C'est une date de type UTC, je reçois du serveur (2019-06-21 20:00:00 +0000)


3 Réponses :


1
votes

C'est parce que vous essayez de comparer des types facultatifs (date) et de date. Essayez de débrancher votre Datefromserver variable. Par exemple, xxx

De plus, vous comparez date et string ici Devicedate <= "\ (DATENEWSERVER)"


0 commentaires

0
votes
    func isLessThanDate(dateToCompare: Date) -> Bool {
    //Declare Variables
    var isLess = false

    //Compare Values
    if self.compare(dateToCompare as Date) == ComparisonResult.orderedAscending {
        isLess = true
    }

    //Return Result
    return isLess
}


func isGreaterThanDate(dateToCompare: Date) -> Bool {
    //Declare Variables
    var isGreater = false

    //Compare Values
    if self.compare(dateToCompare as Date) == ComparisonResult.orderedDescending {
        isGreater = true
    }

    //Return Result
    return isGreater
}

0 commentaires

1
votes

DATENEWSERVER est un en option . Vous devez donc la débrouiller avant d'utiliser plus loin. C'est ce que dit votre erreur.

Date de FUNC (Composant de byadding: Calendar.common, Valeur: Int, à ce jour: Date, emballageComponents: BOOL = Default) -> Date?

Solution: le déballer à l'aide de la liaison optionnelle (si let) ou ou déformation forcée < code> (!) . la liaison optionnelle est plus plus sûre de déballer un en option . xxx


0 commentaires