DBにある生年月日の情報から年齢を計算したいのですがなかなかうまくいかず困ってます。sqlコマンドで年齢を計算すれば楽なんですがjava側で計算するように指示されているのでそのようにやりたいです。
今のところDBから生年月日を持ってきてそれを文字列に変換する部分まではできているんじゃないかと思います。ただ色々試行錯誤していくうちにごちゃごちゃになっているのでうまく動作しない状況です。下記がその部分のコードになるんですが、おかしい点がどこかどう改善すれば良いのかどうかご指摘願います。
private int convertAge(String birthday) {
String strData = rs.getString("birthday");
String strYear = strData.substring(0,4); String strMonth = strData.substring(5,7); String strDay = strData.substring(8); int intYear = Integer.parseInt(strYear); int intMonth = Integer.parseInt(strMonth); int intDay = Integer.parseInt(strDay); Calendar cal = Calendar.getInstance(); cal.set(intYear, intMonth, intDay); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); Calendar birthDay = Calendar.getInstance(); birthDay.setTime(sdf.parse(args[0])); Calendar today = Calendar.getInstance(); today.setTime(sdf.parse(args[1])); int age1 = today.get(Calendar.YEAR)-birthDay.get(Calendar.YEAR); birthDay.clear(Calendar.YEAR); today.clear(Calendar.YEAR); if(birthDay.after(today)) { int age = 0; return age;
どうぞよろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。