Pregunta

Tengo una aplicación prólogo que me permite comparar los puntos de tiempo de los eventos usando una representación basada en el prólogo de las 13 relaciones de Allen. Cada evento tiene un punto de partida (AAAA-MM-DD) y un punto final (AAAA-MM-DD) y puedo comprobar si dos eventos ocurrieron al mismo tiempo o uno está delante de otro, etc hasta la granularidad día (por ejemplo, 12/03/1555 es antes de 12/04/1555). Lo hace bien el trabajo con los llamados fechas de CA (Anno Domini), pero ahora tengo un número bueno de los acontecimientos que ocurrieron antes de Cristo (antes de Cristo). ¿Qué es una mejor manera de manejar los eventos antes de Cristo y ser capaz de decir, por ejemplo, que la fundación de Atenas (1556 aC) es antes del nacimiento de Colón (1451) ..... Cualquier idea es más que bienvenido.

Gracias,

I.

¿Fue útil?

Solución

¿Cómo estás almacenando su fecha? Si está en su propia estructura a continuación, incluir el AD o BC, y utilizar esto como una especie de indicador negativo, BC tratar años como negativo, el tratamiento de AD años como positivo.

Otros consejos

Creo que está preguntando si las fechas se almacenan en diversos predicados o si sólo están especificados en un predicado fecha única, por ejemplo, a_date (12345, "12/24/2011"), donde el primer campo es un campo de ID . Es decir, no se almacena fechas como algo parecido a

a_date (event_id, date_value)

donde el formato de date_value es AAAA-MM-DD?

Una solución: require "AD" o "AC" en la cadena de fecha, siendo el valor por defecto "BC", y el tratamiento de la ausencia de cualquiera como "AD".

Otra solución: Crear un nuevo predicado fecha, llamarlo

a_date (even_id, date_value, bandera)

donde la bandera es bien aC o un anuncio. Si la bandera es ad, matemáticas continúa como siempre. Si la bandera es bc, rama de nuevo código que hace los cálculos apropiados. Predicados existentes actualizados de la forma a_date (event_id, date_value) sería interpretado como a_date (event_id, date_value, "AD")

Es decir, en el código

a_date (event_id, date_value): = a_date (event_id, date_value, "AD")

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top