NIHVIVO-1665 Handle datetime intervals with incomplete data

This commit is contained in:
rjy7 2011-01-18 04:42:19 +00:00
parent 445a4eff11
commit 8b6a8fc6c4

View file

@ -16,7 +16,7 @@
</#if> </#if>
</#macro> </#macro>
<#macro yearIntervalSpan startDateTime endDateTime endYearAsRange=true> <#macro yearIntervalSpan startDateTime="" endDateTime="" endYearAsRange=true>
<#local yearInterval = yearInterval(startDateTime, endDateTime, endYearAsRange)> <#local yearInterval = yearInterval(startDateTime, endDateTime, endYearAsRange)>
<#if yearInterval?has_content> <#if yearInterval?has_content>
<@dateTimeSpan>${yearInterval}</@dateTimeSpan> <@dateTimeSpan>${yearInterval}</@dateTimeSpan>
@ -32,23 +32,23 @@
<#-- FUNCTIONS --> <#-- FUNCTIONS -->
<#-- Assign a year precision and generate the interval --> <#-- Assign a year precision and generate the interval -->
<#function yearInterval dateTimeStart dateTimeEnd endYearAsRange=true> <#function yearInterval dateTimeStart="" dateTimeEnd="" endYearAsRange=true>
<#local precision = "yearPrecision"> <#local precision = "yearPrecision">
<#return dateTimeIntervalShort(dateTimeStart, precision, dateTimeEnd, precision, endYearAsRange)> <#return dateTimeIntervalShort(dateTimeStart, precision, dateTimeEnd, precision, endYearAsRange)>
</#function> </#function>
<#-- Generate a datetime interval with dates displayed as "January 1, 2011" --> <#-- Generate a datetime interval with dates displayed as "January 1, 2011" -->
<#function dateTimeIntervalLong dateTimeStart precisionStart dateTimeEnd precisionEnd endAsRange=true> <#function dateTimeIntervalLong dateTimeStart="" precisionStart="" dateTimeEnd="" precisionEnd="" endAsRange=true>
<#return dateTimeInterval(dateTimeStart, precisionStart, dateTimeEnd, precisionEnd, "long", endAsRange) > <#return dateTimeInterval(dateTimeStart, precisionStart, dateTimeEnd, precisionEnd, "long", endAsRange) >
</#function> </#function>
<#-- Generate a datetime interval with dates displayed as "1/1/2011" --> <#-- Generate a datetime interval with dates displayed as "1/1/2011" -->
<#function dateTimeIntervalShort dateTimeStart precisionStart dateTimeEnd precisionEnd endAsRange=true> <#function dateTimeIntervalShort dateTimeStart="" precisionStart="" dateTimeEnd="" precisionEnd="" endAsRange=true>
<#return dateTimeInterval(dateTimeStart, precisionStart, dateTimeEnd, precisionEnd, "short", endAsRange)> <#return dateTimeInterval(dateTimeStart, precisionStart, dateTimeEnd, precisionEnd, "short", endAsRange)>
</#function> </#function>
<#-- Generate a datetime interval --> <#-- Generate a datetime interval -->
<#function dateTimeInterval dateTimeStart precisionStart dateTimeEnd precisionEnd formatType="short" endAsRange=true> <#function dateTimeInterval dateTimeStart="" precisionStart="" dateTimeEnd="" precisionEnd="" formatType="short" endAsRange=true>
<#if dateTimeStart?has_content> <#if dateTimeStart?has_content>
<#local start = formatXsdDateTime(dateTimeStart, precisionStart, formatType)> <#local start = formatXsdDateTime(dateTimeStart, precisionStart, formatType)>
@ -99,7 +99,7 @@
<#-- Apply a precision and format type to format a datetime --> <#-- Apply a precision and format type to format a datetime -->
<#function formatXsdDateTime dateTimeStr precision="" formatType="short"> <#function formatXsdDateTime dateTimeStr precision="" formatType="short">
<#-- First convert the string to a format that Freemarker can interpret as a datetime. <#-- First convert the string to a format that Freemarker can interpret as a datetime.
For now, strip away time zone rather than displaying it. --> For now, strip away time zone rather than displaying it. -->
<#local dateTimeStr = dateTimeStr?replace("T", " ")?replace("Z.*$", "", "r")?trim> <#local dateTimeStr = dateTimeStr?replace("T", " ")?replace("Z.*$", "", "r")?trim>