Javaで今日の日付を取得して、データベースにいれるコードを書きたいです。
私の考えでは、Calender クラスから年と月と日にちを取得し、それをStringのymdという変数にいれて、、という感じです。
しかし以下のコードを実行すると年しか入っておらず、2021しか反映されていません。私なりに考えたのですがわからないので是非教えてくださるとありがたいです。(家計簿アプリを作る過程で起きたバグなので一部だけ抜粋します)
Java
1Date date = new Date(); 2Calendar calendar = Calendar.getInstance(); 3calendar.setTime(date); 4String dateYear =String.valueOf( calendar.get(Calendar.YEAR)); //年取得 5String dateMonth =String.valueOf( calendar.get(Calendar.MONTH)); //月取得 6String dateDay =String.valueOf( calendar.get(Calendar.DATE)); //日にち取得 7String ymd=(dateYear+"/"+dateMonth+"/"+dateDay); // 「2021/9/22」みたいにしたい 8 9String text = editText.getText().toString(); //EditText(テキストボックス)から文字列を取得 10total= parseInt(TotalMoney.getText().toString().replace("円","")); 11 switch (view.getId()){ 12 case R.id.button: 13 if (!text.equals("")){ 14 int a= parseInt(text); 15 TotalMoney.setText(String.valueOf(total+=a)+"円"); 16 editText.setText(""); 17 if(helper == null){ 18 helper = new TestOpenHelper(getApplicationContext()); 19 } 20 if(db == null) { 21 db = helper.getReadableDatabase(); 22 } 23 insertData(db,key,ymd);//ここで金額と年月日のセットをデータベースに入れる 24 } 25 break;
Java
1 private void readData(){ 2 3 Log.d("debug","**********Cursor"); 4 5 Cursor cursor = db.query( 6 "testdb", 7 new String[] { "company", "stockprice" }, 8 null, 9 null, 10 null, 11 null, 12 null 13 ); 14 15 cursor.moveToFirst(); 16 17 StringBuilder sbuilder = new StringBuilder(); 18 19 for (int i = 0; i < cursor.getCount(); i++) { 20 sbuilder.append(cursor.getString(0)); 21 sbuilder.append(": "); 22 sbuilder.append(cursor.getInt(1)); 23 sbuilder.append("\n"); 24 cursor.moveToNext(); 25 } 26 27 cursor.close(); 28 29 Log.d("debug","**********"+sbuilder.toString()); 30 textView.setText(sbuilder.toString()); 31 } 32 33 private void insertData(SQLiteDatabase db, String com, String price){ 34 35 ContentValues values = new ContentValues(); 36 values.put("company", com); 37 values.put("stockprice", price);//ここで日付挿入 38 39 db.insert("testdb", null, values);//ここでデータベース挿入 40 }
回答2件
あなたの回答
tips
プレビュー