如何从出生日期计算年龄
How to calculate age from date of birth
我有一个用户注册表,所有用户数据都存储在数据库中。
我在会员列表页面的 UI 中列出了所有用户数据。在那里我必须根据他们的出生日期计算用户的年龄。我尝试使用 JSTL 进行计算,但仍然没有得到答案。
这是我试过的:
<fmt:parseDate value="${user.dateofbirth}" var="parseddate" type="date" pattern="yyyy-MM-dd" />
<jsp:useBean id="now" class="java.util.Date" />
<td class="dataField">
<fmt:formatDate value="${parseddate}" type="date" pattern="MMMM dd yyyy "/>
</td>
<c:set var="today" value="<%=new java.util.Date()%>" />
<fmt:parseNumber type="date" value="${today}" />
<td>
<c:out value="${today-parseddate}"></c:out>
</td>
我是 JSTL 的新手。谁能帮我解决这个问题?
这里的代码演示了如何使用 JSTL 来实现。它并不完全完美,因为我忽略了闰年的额外一天。
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:parseDate value="1979-09-27" var="parsedDate" type="date" pattern="yyyy-MM-dd" />
<jsp:useBean id="now" class="java.util.Date" />
<fmt:parseNumber type="number" integerOnly = "true"
value="${(now.time - parsedDate.time)/(1000 * 60 * 60 * 24 * 365)}" />
反正输出42年
如果这里有人想得到两个日期之间的天数差异,并想将其显示在 JSP 的另一列中,您可以这样做。
<fmt:parseDate value = "${name_of_your_bean.1st_variable}" var = "formatedDate1" type = "date" pattern = "yyyy-MM-dd" />
<jsp:useBean id="start_date" class="java.util.Date" />
<td > <fmt:formatDate value = "${formatedDate1}" type = "date" pattern = "MMMM dd,yyyy"/> </td>
<fmt:parseDate value = "${name_of_your_bean.2nd_variable}" var = "formatedDate2" type = "date" pattern = "yyyy-MM-dd" />
<jsp:useBean id="end_date" class="java.util.Date" />
<td> <fmt:formatDate value = "${formatedDate2}" type = "date" pattern = "MMMM dd,yyyy"/> </td>
// To display in separate column do like this
<td> <fmt:parseNumber type = "number" integerOnly = "true" value = "${(formatedDate2.time - formatedDate1.time)/(1000 * 60 * 60 * 24)}" /> Days </td>
我有一个用户注册表,所有用户数据都存储在数据库中。
我在会员列表页面的 UI 中列出了所有用户数据。在那里我必须根据他们的出生日期计算用户的年龄。我尝试使用 JSTL 进行计算,但仍然没有得到答案。
这是我试过的:
<fmt:parseDate value="${user.dateofbirth}" var="parseddate" type="date" pattern="yyyy-MM-dd" />
<jsp:useBean id="now" class="java.util.Date" />
<td class="dataField">
<fmt:formatDate value="${parseddate}" type="date" pattern="MMMM dd yyyy "/>
</td>
<c:set var="today" value="<%=new java.util.Date()%>" />
<fmt:parseNumber type="date" value="${today}" />
<td>
<c:out value="${today-parseddate}"></c:out>
</td>
我是 JSTL 的新手。谁能帮我解决这个问题?
这里的代码演示了如何使用 JSTL 来实现。它并不完全完美,因为我忽略了闰年的额外一天。
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:parseDate value="1979-09-27" var="parsedDate" type="date" pattern="yyyy-MM-dd" />
<jsp:useBean id="now" class="java.util.Date" />
<fmt:parseNumber type="number" integerOnly = "true"
value="${(now.time - parsedDate.time)/(1000 * 60 * 60 * 24 * 365)}" />
反正输出42年
如果这里有人想得到两个日期之间的天数差异,并想将其显示在 JSP 的另一列中,您可以这样做。
<fmt:parseDate value = "${name_of_your_bean.1st_variable}" var = "formatedDate1" type = "date" pattern = "yyyy-MM-dd" />
<jsp:useBean id="start_date" class="java.util.Date" />
<td > <fmt:formatDate value = "${formatedDate1}" type = "date" pattern = "MMMM dd,yyyy"/> </td>
<fmt:parseDate value = "${name_of_your_bean.2nd_variable}" var = "formatedDate2" type = "date" pattern = "yyyy-MM-dd" />
<jsp:useBean id="end_date" class="java.util.Date" />
<td> <fmt:formatDate value = "${formatedDate2}" type = "date" pattern = "MMMM dd,yyyy"/> </td>
// To display in separate column do like this
<td> <fmt:parseNumber type = "number" integerOnly = "true" value = "${(formatedDate2.time - formatedDate1.time)/(1000 * 60 * 60 * 24)}" /> Days </td>