마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

디데이 어플 만드는중에 제 힘으로 도저히 안되는 부분이네요.선생님 도와주십시오.ㅠㅠ

0 추천

public class MainActivity extends FragmentActivity  {
 
 TextView tv1;
 TextView tv2;
 TextView tv4;
 TextView reTv;
 TextView tva;
 TextView tvb;
 Button bt;
 Button cbt;
 Button bt_c;
 
 private int pday;
 private int mday;
 
 private int tYear;
 private int tMonth;
 private int tDay;                    // 현재 지정한 날짜의 연월일 변수
 
 private int dYear;
 private int dMonth;
 private int dDay;
 
 private long t;
 private long d;
 private long r;
 
 static final int DATE_DIALOG_ID=0;
 private int resultNum = 0;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
 reTv=(TextView)findViewById(R.id.textView3); 
 tv2=(TextView)findViewById(R.id.textView2);
 tv1=(TextView)findViewById(R.id.textView1);
 tv4=(TextView)findViewById(R.id.textView4);
 tva=(TextView)findViewById(R.id.textView_a);
 tvb=(TextView)findViewById(R.id.textView_b);
 bt=(Button)findViewById(R.id.button_cal);
 cbt=(Button)findViewById(R.id.button1);
 bt_c=(Button)findViewById(R.id.button2);
 cbt.setText("기준일을 설정하세요");
 tva.setText("기준일로 부터 ");
 tvb.setText("일 째 되는날");
 bt_c.setOnClickListener(new OnClickListener() {
  
  
  @Override
  public void onClick(View arg0) {
   // TODO Auto-generated method stub
   Intent intent = new Intent(Intent.ACTION_MAIN);
   intent.setComponent(new ComponentName("일정","com.android.calendar"));

 


  
 
   startActivity(intent);
   
  }
  
 });
 
 findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
     @Override
     public void onClick(View v) {
      showDatePicker();
      Log.e("AAAAA","CCCCCCCCCCCCCCCCCCCCCC");
     }
     });
  
 

  Calendar calendar = Calendar.getInstance();
  tYear = calendar.get(Calendar.YEAR);
  tMonth = calendar.get(Calendar.MONTH);
  tDay = calendar.get(Calendar.DAY_OF_MONTH);
  
  Calendar dCalendar = Calendar.getInstance();
  dCalendar.set(dYear, dMonth, dDay);
  
  t = calendar.getTimeInMillis();
  d = dCalendar.getTimeInMillis();
  r = (d-t)/(24*60*60*1000);
  
  resultNum = (int)r + 1;
  updateDisplay();
 }
 
  /****************************데이트피커************************************/
  private void showDatePicker() {
    DatePickerFragment date = new DatePickerFragment();
    /**
     * Set Up Current Date Into dialog
     */
    Calendar calender = Calendar.getInstance();
    Bundle args = new Bundle();
    args.putInt("year", calender.get(Calendar.YEAR));
    args.putInt("month", calender.get(Calendar.MONTH));
    args.putInt("day", calender.get(Calendar.DAY_OF_MONTH));
    date.setArguments(args);
    /**
     * Set Call back to capture selected date
     */
    date.setCallBack(ondate);
    date.show(getSupportFragmentManager(), "Date Picker");
   }

   OnDateSetListener ondate = new OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear,
      int dayOfMonth) {
     dYear=year;
     dMonth=monthOfYear;
     dDay=dayOfMonth;
     final Calendar dCalendar = Calendar.getInstance();
       dCalendar.set(dYear, dMonth, dDay);
       d=dCalendar.getTimeInMillis();
       r=(d-t)/(24*60*60*1000);
       resultNum=(int)r;
       
       updateDisplay();
     Toast.makeText(
       MainActivity.this,
       String.valueOf(dYear) + "-" + String.valueOf(dMonth+1)
         + "-" + String.valueOf(dDay),
       Toast.LENGTH_LONG).show();
    
    cbt.setText("기준일은 "+String.valueOf(dYear) + "년 " + String.valueOf(dMonth+1)
         + "월 " + String.valueOf(dDay)+"일 입니다.");
   
   
    }
   };
  /****************************데이트피커************************************/
 
 
 
 
 
 
 
 private void updateDisplay() {
  
  
   
  
   
  
  
  tv1.setText(String.format("오늘 날짜: %d년 %d월 %d일", tYear, tMonth+1, tDay));
  
  
  if(resultNum>=0) {
   reTv.setText(String.format("기준일로부터 D -%d", resultNum));
   tv2.setText("오늘로부터 "+resultNum+"일 남았습니다.");
   
   
   
  }
  else{
   int absR=Math.abs(resultNum);
   reTv.setText(String.format("기준일로부터 D +%d", absR));
   tv2.setText(resultNum+"일 지났습니다.");
   }
  }
  
 

 

 

 @Override
 protected Dialog onCreateDialog(int id) {
  // TODO Auto-generated method stub
  if(id==DATE_DIALOG_ID){
   return new DatePickerDialog(this, ondate , tYear, tMonth, tDay);
   
  }
  return null;
 }
}

선생님, 왕초보가 이만큼 하는것도 쉽지는 않았는데요..ㅠㅠ

디데이 계산하는데 있어서 기준일을 설정하면 오늘날짜로부터 몇일지난 (D  + 몇일) 이 나오거나 몇일남은(D  - 몇일) 이렇게 나오는 상태입니다.

제가 이상태에서 남은 날짜와 지난 날짜를 0000년 00월 00일로 화면에 나오게 받고 싶은데 resultNum 값에 달력을 연결해서 해야 하는지 아니면 로직코딩이 필요한건지 어떻게 해야할지 도대체 경험이 없어서 모르겠습니다.

아이폰에 있는 디데이 어플에 있는 기능들인데 기준일 설정 후// (000일) 을 버튼으로 입력받고 이를 또 달력 날짜로 화면에 보이게 하고 싶은데 어떻게 하면 좋을까요.  

크림인사이드 (120 포인트) 님이 2013년 3월 21일 질문

1개의 답변

0 추천

long time=System.currentTimeMills()+[일]*24*60*60;

 

final Date data = new Date(time);
		return DateFormat.format("이건 검색해보세요...(기억안남)", data).toString(

 

ㅇㅅㅇ 이거 쓰세요 

수상한i (8,050 포인트) 님이 2013년 3월 21일 답변
검색해도 안나와요ㅠㅅㅠ
조금만 더 도와주세요 선생님 ㅠㅅㅠ;;
나옵니다... 엄청나게 많이요..
원래 쉬운건 검색하면 많이나와요
...