add countdown.

This commit is contained in:
2023-03-03 12:46:58 +08:00
parent b07489723c
commit 18a20c04c5
10 changed files with 414 additions and 368 deletions

View File

@@ -1,4 +1,4 @@
import { intervalToDuration } from "date-fns"
import { getTime, intervalToDuration, parseISO } from "date-fns"
import { STORAGE_KEY } from "./constants"
export function getACRate(acCount: number, totalCount: number) {
@@ -36,15 +36,19 @@ export function getTagColor(
}[tag]
}
export function parseTime(utc: Date, format = "YYYY年M月D日") {
export function parseTime(utc: Date | string, format = "YYYY年M月D日") {
const time = useDateFormat(utc, format, { locales: "zh-CN" })
return time.value
}
export function duration(start: Date, end: Date): string {
export function duration(
start: Date | string,
end: Date | string,
showSeconds = false
): string {
const duration = intervalToDuration({
start: Date.parse(start.toString()),
end: Date.parse(end.toString()),
start: getTime(parseISO(start.toString())),
end: getTime(parseISO(end.toString())),
})
let result = ""
if (duration.years) {
@@ -62,6 +66,9 @@ export function duration(start: Date, end: Date): string {
if (duration.minutes) {
result += duration.minutes + "分钟"
}
if (showSeconds) {
result += duration.seconds + "秒"
}
return result
}

View File

@@ -220,10 +220,11 @@ export interface Contest {
description: string
real_time_rank: boolean
rule_type: "ACM"
start_time: Date
end_time: Date
create_time: Date
last_update_time: Date
start_time: string
end_time: string
create_time: string
now: string
last_update_time: string
}
interface SubmissionInfo {