public class MiniFridge_Input extends Activity {
EditText mEdit1;
private EditText mEdit2;
EditText mEdit3;
private int mYear;
private int mMonth;
private int mDay;
static final int DATE_DIALOG_ID=0;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.minifridge_input_dialog);
mEdit1 = (EditText)findViewById(R.id.input1);
mEdit2 = (EditText)findViewById(R.id.input2);
mEdit3 = (EditText)findViewById(R.id.input3);
mEdit2.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
showDialog(DATE_DIALOG_ID);
}
});
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
updateDisplay();
Button btnOK=(Button)findViewById(R.id.ok_btn);
btnOK.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("TextOut1", mEdit1.getText().toString());
intent.putExtra("TextOut2", mEdit2.getText().toString());
intent.putExtra("TextOut3", mEdit3.getText().toString());
setResult(RESULT_OK,intent);
finish();
}
});
Button btnCancel=(Button)findViewById(R.id.cancel_btn);
btnCancel.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
setResult(RESULT_CANCELED);
finish();
}
});
}
private void updateDisplay(){
mEdit2.setText(
new StringBuilder()
.append(mYear).append("년 ")
.append(mMonth+1).append("월 ")
.append(mDay).append("일"));
}
private DatePickerDialog.OnDateSetListener mDateSetListener =
new DatePickerDialog.OnDateSetListener(){
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth){
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
updateDisplay();
}
};
protected Dialog onCreateDialog(int id){
switch(id){
case DATE_DIALOG_ID:
return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay);
}
return null;
}
}
제 코드입니다.
mEdit2에 데이트피커로 원하는 날짜입력하는 것은 구현했는데
mEdit3에 mEdit2에서 입력한 날짜와 현재날짜를 비교하여 D-day 날짜를 표시하고 싶은데
제가 너무 초보라서 구현코드를 몰라서 이렇게 글을 남깁니다.
검색해도 잘 안나와서 그러니 꼭 좀 알려주세요~




제가 예전에 이걸 무식하게 구현한 적이 있었는데...
우선 현재 달과 디데이 달을 비교해서 같으면 디데이날짜 - 현재날짜
다르면 현재 달 +1을 저장하고 현재 달의 총 일수 - 현재날짜 + 디데이날짜
그리고 달을 +1씩 해가면서 디데이 달과 같아질때까지 해당 달의 총일수를 계속 더해주고(12월이 넘어가면 년도 +1)
현재 달 + i과 디데이 달이 같아지면 년도 차이나는 만큼 +365(윤년 따로 계산)
뭐 코드가 그렇게 길게 나오진 않았던거 같습니다만 아마 이거보단 더 좋은 방법이 있겠죠?ㅡㅡ;