Attualmente sto scrivendo un parser per data umana. Per data umana, intendo che dovrebbe essere in grado di interpretare le stringhe come "domani a 2" e restituire una data valida in base all'ora corrente.
Il problema che sto affrontando è il rilevamento automatico del token AM / PM mancante. Ad esempio, se ricevo un'email che dice "Diamo appuntamento domani alle 2", so che probabilmente è il 2, infatti, alle 14:00. D'altra parte, se l'e-mail dicesse "Ci incontriamo domani alle 11", 11 è più probabile che siano le 11:00.
Credo che la maggior parte delle volte, un semplice confronto dovrebbe fare il trucco. Se il numero è maggiore di un certo limite n , possiamo supporre che l'ora sia AM. Se il numero è più piccolo, probabilmente è PM. Nell'esempio sopra, 2 era più probabile che fosse PM, e 11 era AM.
So che una giornata di lavoro comune è di circa 9 AM-6PM, quindi i numeri inferiori a 6 o superiori o superiori a 9 vanno bene. Possiamo facilmente indovinare per quelli. Ma cosa faccio con 7 e 8?
Quindi la domanda esatta che ho è, dove metto questo limite esatto? Quando i numeri si avvicinano a 7 ~ 8, il limite diventa più ambiguo. Ho provato a cercare la documentazione precedente su questo problema ma non sono riuscito a trovarne. C'è qualche tipo di convenzione su questo? Inoltre, a mio parere, le impostazioni internazionali e / o il fuso orario potrebbero influenzare questo limite.
A proposito, non sono interessato a risposte non definitive come "Secondo me, 7 is afternoon" o "For me, 8 is morning". Sono davvero interessato alla documentazione che potrebbe aiutarmi a tracciare una linea definitiva.
Spero che la descrizione del problema sia abbastanza comprensibile.