updated time zones
This commit is contained in:
@@ -7,6 +7,8 @@ struct CODDate {
|
|||||||
let month:Int
|
let month:Int
|
||||||
let year:Int
|
let year:Int
|
||||||
let day: Int
|
let day: Int
|
||||||
|
let hour:Int
|
||||||
|
let minute:Int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -174,19 +176,19 @@ struct StatsController: RouteCollection {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func getStartDate() -> Date {
|
private func getStartDate() -> Date {
|
||||||
|
|
||||||
let calendar = Calendar.current
|
let calendar = Calendar.current
|
||||||
var components = DateComponents()
|
var components = DateComponents()
|
||||||
components.timeZone = TimeZone(identifier: "GMT")
|
components.timeZone = TimeZone(identifier: "GMT")
|
||||||
components.day = 20
|
components.day = 20
|
||||||
components.month = 03
|
components.month = 03
|
||||||
components.year = 2020
|
components.year = 2020
|
||||||
components.hour = 0
|
components.hour = 4
|
||||||
components.minute = 0
|
components.minute = 0
|
||||||
return calendar.date(from: components)!
|
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
|
let calendar = Calendar.current
|
||||||
|
|
||||||
var components = DateComponents()
|
var components = DateComponents()
|
||||||
@@ -194,6 +196,8 @@ struct StatsController: RouteCollection {
|
|||||||
components.day = day
|
components.day = day
|
||||||
components.month = month
|
components.month = month
|
||||||
components.year = year
|
components.year = year
|
||||||
|
components.hour = hour
|
||||||
|
components.minute = minute
|
||||||
return calendar.date(from: components)!
|
return calendar.date(from: components)!
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -202,20 +206,16 @@ struct StatsController: RouteCollection {
|
|||||||
|
|
||||||
|
|
||||||
func all(req: Request) throws -> EventLoopFuture<AllStats> {
|
func all(req: Request) throws -> EventLoopFuture<AllStats> {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var date = getStartDate()
|
var date = getStartDate()
|
||||||
var previousMonths:[CODDate] = []
|
var previousMonths:[CODDate] = []
|
||||||
|
|
||||||
repeat {
|
repeat {
|
||||||
//let stats = getStatsByMonth(year: date.year, month: date.month, req: req) //returns eventloopfuture<Stats>
|
//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)!
|
date = Calendar.current.date(byAdding: .month, value: 1, to: date)!
|
||||||
} while (date.month != (Date().month + 1) || date.year != Date().year)
|
} while (date.month != (Date().month + 1) || date.year != Date().year)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func getMonthStats (_ remaining: ArraySlice<CODDate>, allMonthlyStats: inout [MonthStats], eventLoop: EventLoop) -> EventLoopFuture<[MonthStats]> {
|
func getMonthStats (_ remaining: ArraySlice<CODDate>, allMonthlyStats: inout [MonthStats], eventLoop: EventLoop) -> EventLoopFuture<[MonthStats]> {
|
||||||
var remaining = remaining
|
var remaining = remaining
|
||||||
if let first = remaining.popLast() {
|
if let first = remaining.popLast() {
|
||||||
@@ -286,11 +286,9 @@ struct StatsController: RouteCollection {
|
|||||||
var date = getStartDate()
|
var date = getStartDate()
|
||||||
var previousDays:[CODDate] = []
|
var previousDays:[CODDate] = []
|
||||||
|
|
||||||
|
|
||||||
repeat {
|
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)!
|
date = Calendar.current.date(byAdding: .day, value: 1, to: date)!
|
||||||
|
|
||||||
} while (date < Date())
|
} while (date < Date())
|
||||||
|
|
||||||
return previousDays
|
return previousDays
|
||||||
@@ -299,12 +297,8 @@ struct StatsController: RouteCollection {
|
|||||||
|
|
||||||
func allDaily(req:Request) -> EventLoopFuture<AllDailyStats>{
|
func allDaily(req:Request) -> EventLoopFuture<AllDailyStats>{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
let previousDays = getDaysPlayed().reversed()
|
let previousDays = getDaysPlayed().reversed()
|
||||||
|
|
||||||
|
|
||||||
func getDailyStats (_ remaining: ArraySlice<CODDate>, allDailyStats: inout [DailyStats], eventLoop: EventLoop) -> EventLoopFuture<[DailyStats]> {
|
func getDailyStats (_ remaining: ArraySlice<CODDate>, allDailyStats: inout [DailyStats], eventLoop: EventLoop) -> EventLoopFuture<[DailyStats]> {
|
||||||
var remaining = remaining
|
var remaining = remaining
|
||||||
if let first = remaining.popLast() {
|
if let first = remaining.popLast() {
|
||||||
@@ -368,7 +362,8 @@ struct StatsController: RouteCollection {
|
|||||||
var cumulativeWinLossRatios = cumulativeWinLossRatios
|
var cumulativeWinLossRatios = cumulativeWinLossRatios
|
||||||
if !(stats.totalWins == 0 && stats.totalLosses == 0) {
|
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)))
|
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)))
|
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 {
|
extension Date {
|
||||||
|
|
||||||
var month:Int {
|
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
|
return calanderDate.month ?? 1
|
||||||
}
|
}
|
||||||
|
|
||||||
var year:Int {
|
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
|
return calanderDate.year ?? 1
|
||||||
}
|
}
|
||||||
|
|
||||||
var day:Int {
|
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
|
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
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ struct CreateMatch: Migration {
|
|||||||
.id()
|
.id()
|
||||||
.field("map", .string)
|
.field("map", .string)
|
||||||
.field("win", .bool)
|
.field("win", .bool)
|
||||||
.field("date", .date)
|
.field("date", .datetime)
|
||||||
.field("roundsWon", .int)
|
.field("roundsWon", .int)
|
||||||
.field("roundsLost", .int)
|
.field("roundsLost", .int)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user