Obiettivo evento di squadra al mese: conta quando arriva l'ora dell'evento
Prima bastava definire l'evento nel mese; ora data e ora (Europe/Rome) devono essere già passate. Senza ora vale 00:00. Test e documentazione aggiornati. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
985fc2fcc1
commit
ff02b7439c
4 files changed
+91
-3
No files matched your search
+25
-1
@@ -31,6 +31,24 @@ function meseCorrente(oggi: Date): string {
|
||||
return new Intl.DateTimeFormat("en-CA", { timeZone: "Europe/Rome" }).format(oggi).slice(0, 7);
|
||||
}
|
||||
|
||||
/** Istante corrente in Europe/Rome come "YYYY-MM-DD HH:mm", confrontabile con data + ora di un evento. */
|
||||
function adessoRoma(oggi: Date): string {
|
||||
const p = Object.fromEntries(
|
||||
new Intl.DateTimeFormat("en-CA", {
|
||||
timeZone: "Europe/Rome",
|
||||
year: "numeric",
|
||||
month: "2-digit",
|
||||
day: "2-digit",
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
hourCycle: "h23",
|
||||
})
|
||||
.formatToParts(oggi)
|
||||
.map((x) => [x.type, x.value]),
|
||||
);
|
||||
return `${p["year"]}-${p["month"]}-${p["day"]} ${p["hour"]}:${p["minute"]}`;
|
||||
}
|
||||
|
||||
/** "a settembre" / "ad agosto": preposizione con elisione davanti a vocale. */
|
||||
function aMese(oggi: Date): string {
|
||||
const nome = new Intl.DateTimeFormat("it-IT", { timeZone: "Europe/Rome", month: "long" }).format(
|
||||
@@ -180,7 +198,13 @@ export function obiettiviSquadra(
|
||||
id: "o6",
|
||||
titolo: "1 evento di squadra al mese",
|
||||
descrizione: "Pizzate, cene e uscite fuori dal campo",
|
||||
valore: ctx.eventi.filter((e) => e.tipo === "evento" && e.data.startsWith(mese)).length,
|
||||
// Conta solo quando l'ora dell'evento è arrivata, non quando viene definito.
|
||||
valore: ctx.eventi.filter(
|
||||
(e) =>
|
||||
e.tipo === "evento" &&
|
||||
e.data.startsWith(mese) &&
|
||||
`${e.data} ${e.ora || "00:00"}` <= adessoRoma(oggi),
|
||||
).length,
|
||||
target: 1,
|
||||
unita: "eventi",
|
||||
emoji: "🍕",
|
||||
|
||||
Reference in new issue
Block a user