updated time zones

This commit is contained in:
Michael Simard
2020-06-16 23:18:31 -04:00
parent 032e1af5e5
commit 42a1b2f4ec
2 changed files with 43 additions and 22 deletions

View File

@@ -7,6 +7,8 @@ struct CODDate {
let month:Int
let year:Int
let day: Int
let hour:Int
let minute:Int
}
@@ -174,19 +176,19 @@ struct StatsController: RouteCollection {
}
private func getStartDate() -> Date {
let calendar = Calendar.current
var components = DateComponents()
components.timeZone = TimeZone(identifier: "GMT")
components.day = 20
components.month = 03
components.year = 2020
components.hour = 0
components.hour = 4
components.minute = 0
return calendar.date(from: components)!
}
private func createDate(day:Int, month:Int, year:Int) -> Date {
private func createDate(day:Int, month:Int, year:Int, hour:Int, minute:Int) -> Date {
let calendar = Calendar.current
var components = DateComponents()
@@ -194,6 +196,8 @@ struct StatsController: RouteCollection {
components.day = day
components.month = month
components.year = year
components.hour = hour
components.minute = minute
return calendar.date(from: components)!
}
@@ -202,20 +206,16 @@ struct StatsController: RouteCollection {
func all(req: Request) throws -> EventLoopFuture<AllStats> {
var date = getStartDate()
var previousMonths:[CODDate] = []
repeat {
//let stats = getStatsByMonth(year: date.year, month: date.month, req: req) //returns eventloopfuture<Stats>
previousMonths.append(CODDate(month: date.month, year: date.year, day: 15))
previousMonths.append(CODDate(month: date.month, year: date.year, day: 15, hour:6, minute: 0))
date = Calendar.current.date(byAdding: .month, value: 1, to: date)!
} while (date.month != (Date().month + 1) || date.year != Date().year)
func getMonthStats (_ remaining: ArraySlice<CODDate>, allMonthlyStats: inout [MonthStats], eventLoop: EventLoop) -> EventLoopFuture<[MonthStats]> {
var remaining = remaining
if let first = remaining.popLast() {
@@ -286,11 +286,9 @@ struct StatsController: RouteCollection {
var date = getStartDate()
var previousDays:[CODDate] = []
repeat {
previousDays.append(CODDate(month: date.month, year: date.year, day: date.day))
previousDays.append(CODDate(month: date.month, year: date.year, day: date.day, hour: date.hour, minute: date.minute))
date = Calendar.current.date(byAdding: .day, value: 1, to: date)!
} while (date < Date())
return previousDays
@@ -299,12 +297,8 @@ struct StatsController: RouteCollection {
func allDaily(req:Request) -> EventLoopFuture<AllDailyStats>{
let previousDays = getDaysPlayed().reversed()
func getDailyStats (_ remaining: ArraySlice<CODDate>, allDailyStats: inout [DailyStats], eventLoop: EventLoop) -> EventLoopFuture<[DailyStats]> {
var remaining = remaining
if let first = remaining.popLast() {
@@ -368,7 +362,8 @@ struct StatsController: RouteCollection {
var cumulativeWinLossRatios = cumulativeWinLossRatios
if !(stats.totalWins == 0 && stats.totalLosses == 0) {
let date = self.createDate(day: first.day, month: first.month, year: first.year)
let date = self.createDate(day: first.day, month: first.month, year: first.year, hour: first.hour, minute:first.minute)
print ("p \(date.timeIntervalSince1970)")
cumulativeWinLossRatios.append(DataPoint(x:date.timeIntervalSince1970*1000 , y: (totalWins/totalLosses).truncate(places: 2)))
}
allDailyStats.append(DailyStats(day: first.day, month: first.month, year: first.year, stats: stats, cumulativeRatio: self.getRatio(num: totalWins, den: totalLosses)))
@@ -401,17 +396,43 @@ extension Double
extension Date {
var month:Int {
let calanderDate = Calendar.current.dateComponents([.day, .year, .month], from: self)
var calendar = Calendar.current
calendar.timeZone = TimeZone(identifier: "GMT")!
let calanderDate = calendar.dateComponents([.minute, .month, .year, .hour, .day], from: self)
return calanderDate.month ?? 1
}
var year:Int {
let calanderDate = Calendar.current.dateComponents([.day, .month, .year], from: self)
var calendar = Calendar.current
calendar.timeZone = TimeZone(identifier: "GMT")!
let calanderDate = calendar.dateComponents([.minute, .month, .year, .hour, .day], from: self)
return calanderDate.year ?? 1
}
var day:Int {
let calanderDate = Calendar.current.dateComponents([.day, .month, .year], from: self)
var calendar = Calendar.current
calendar.timeZone = TimeZone(identifier: "GMT")!
let calanderDate = calendar.dateComponents([.minute, .month, .year, .hour, .day], from: self)
return calanderDate.day ?? 1
}
var hour:Int {
var calendar = Calendar.current
calendar.timeZone = TimeZone(identifier: "GMT")!
let calanderDate = calendar.dateComponents([.minute, .month, .year, .hour, .day], from: self)
return calanderDate.hour ?? 1
}
var minute:Int {
var calendar = Calendar.current
calendar.timeZone = TimeZone(identifier: "GMT")!
let calanderDate = calendar.dateComponents([.minute, .month, .year, .hour, .day], from: self)
return calanderDate.minute ?? 1
}
}