rrule.swift icon indicating copy to clipboard operation
rrule.swift copied to clipboard

Wrong Daily reccurrence generating between

Open Saulenco opened this issue 5 years ago • 0 comments

the repeating is daily count 5 from 24.06.2019 and last instance is on 28.06.2019 but the result of rule.getOccurrencesBetween return 5 occurrences from 28.06.2019

func customRuleGenerator() {
        let appointentStart = "24.06.2019"
        
        let windowStart = "28.06.2019"
        let windowEnd = "28.09.2019"
        
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "dd.MM.yyyy"
        
        let rule = getRule(for: dateFormatter.date(from: appointentStart)!)
        let occurrences = rule.getOccurrencesBetween(beginDate: dateFormatter.date(from: windowStart)!, endDate: dateFormatter.date(from: windowEnd)!)
        
        print(occurrences)
        
    }
    
    func getRule( for start: Date) -> rrule {
        //frequency
        let rrulefrequency: RruleFrequency = .daily
        
        //dtstart
        let rruledtstart = start
        
        //until
        let rruleuntil: Date? = nil
        
        //count
        var rrulecount: Int? = 5

        //interval
        var rruleinterval: Int = 1

        //wkst
        let rrulewkst = 1 //TODO: implement week start
        
        //byweekday
        let rrulebyweekday: [Int] = []
        
        //byweekno
        let rrulebyweekno: [Int] = []
        
        //bymonth
        let rrulebymonth: [Int] = []
        
        //bymonthday
        let rrulebymonthday: [Int] = [] // if monthly and there is no weekDays
        
        //byyearday
        let rrulebyyearday: [Int] = []
        
        //bysetpos
        let rrulebysetpos: [Int] = []
        
        let rule = rrule(frequency: rrulefrequency, dtstart: rruledtstart, until: rruleuntil, count: rrulecount, interval: rruleinterval, wkst: rrulewkst, bysetpos: rrulebysetpos, bymonth: rrulebymonth, bymonthday: rrulebymonthday, byyearday: rrulebyyearday, byweekno: rrulebyweekno, byweekday: rrulebyweekday, byhour: [], byminute: [], bysecond: [])
        
        return rule
    }

Saulenco avatar Jun 26 '19 08:06 Saulenco