Q&A
前提
実現したいこと
ここに実現したいことを箇条書きで書いてください。
- 年齢計算サーブレットの作成
- HTMLで入力された値をもとにJAVAで年齢計算を行い表示する
発生している問題・エラーメッセージ
名前は出るが 年齢計算の結果がnullになる
該当のソースコード
Java
1package pkg1; 2 3import java.io.IOException; 4import java.io.PrintWriter; 5import java.text.ParseException; 6import java.text.SimpleDateFormat; 7import java.util.Calendar; 8import java.util.Date; 9 10import javax.servlet.ServletException; 11import javax.servlet.annotation.WebServlet; 12import javax.servlet.http.HttpServlet; 13import javax.servlet.http.HttpServletRequest; 14import javax.servlet.http.HttpServletResponse; 15import tool.Page; 16 17@WebServlet(urlPatterns={"/pkg1/Age_calculation"}) 18public class Age_calculation extends HttpServlet{ 19 public void doPost ( 20 HttpServletRequest request, HttpServletResponse response 21 ) throws ServletException, IOException { 22 response.setContentType("text/html; charset=UTF-8"); 23 PrintWriter out=response.getWriter(); 24 try { 25 request.setCharacterEncoding("UTF-8"); 26 String name=request.getParameter("name"); 27 28 Calendar calendarBirth = Calendar.getInstance(); 29 Calendar calendarNow = Calendar.getInstance(); 30 31 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); 32 33 Date birthday = sdf.parse(request.getParameter("birthday")); 34 Date now = new Date(); 35 calendarBirth.setTime(birthday); 36 calendarNow.setTime(now); 37 38 int age = calendarNow.get(Calendar.YEAR) - calendarBirth.get(Calendar.YEAR); 39 if (calendarNow.get(Calendar.MONTH) < calendarBirth.get(Calendar.MONTH)) { 40 age -= 1; 41 }else if (calendarNow.get(Calendar.MONTH) == calendarBirth.get(Calendar.MONTH)) { 42 43 if (calendarNow.get(Calendar.DATE) < calendarBirth.get(Calendar.DATE)) { 44 age -= 1; 45 } 46 } 47 48 Page.header(out);out.println("名前"+name+"<br>"); 49 Page.header(out);out.println("年齢" + calcAge(birthday, now) + "歳"); 50 51 52 Page.footer(out); 53 } catch (NumberFormatException e) { 54 out.println("生年月日を入力してください"); 55 } catch (ParseException e) { 56 e.printStackTrace(); 57 } 58 } 59 60 private String calcAge(Date birthday, Date now) { 61 return null; 62 } 63 } 64
試したこと
https://qiita.com/pontyo4/items/14f159e802b312cb0b61
こちらのURLを参考に作成しました。
そして出たエラーはeclipceの修正機能で編集しました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2022/06/09 04:52
2022/06/09 04:56
2022/06/09 06:11
2022/06/09 18:21