【Java】生年月日から年齢を計算するプログラム
生年月日から年齢を返すプログラムを作成したのでアウトプットしておきます。
java.time.LocalDateクラスを使用して作成していきます。
生年月日から年齢を計算する
今回の流れ
入力jsp → サーブレットクラス → 出力jsp
CalcServlet.java
サーブレットクラスです
package servlet; import java.io.IOException; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/CalcServlet") public class CalcServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { exec(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { exec(request, response); } private void exec(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String year = request.getParameter("year"); String month = request.getParameter("month"); String day = request.getParameter("day"); Hold hold = new Hold(); String age = getAge(year, month, day); hold.setAge(age); request.setAttribute("hold", hold); RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/Result.jsp"); dispatcher.forward(request, response); } private String getAge(String year, String month, String day) { String birthdate = year + "/" + month + "/" + day; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/M/d"); LocalDate localBirdhdate = LocalDate.parse(birthdate, formatter); LocalDate nowDate = LocalDate.now(); return Long.toString(ChronoUnit.YEARS.between(localBirdhdate, nowDate)); } }
Hold.java
ageを保持するクラス
package servlet; public class Hold { private String age; public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
あとは入力するjspファイルと結果を表示るjspファイル(今回はResult.jsp)を作成すれば完成です。
入力jsp(サンプル)
出力先jsp(今回はResult.jsp)
生年月日を入力すると年齢を表示することができました。
大変参考にしたサイト www.l08084.com