안드로이드 자바

[Java][Android] 날짜 선택 후 요일 계산해서 보여주는 방법

teamnova 2025. 5. 6. 14:28
728x90

안녕하세요

오늘은 사용자가 날짜를 선택하면, 해당 날짜가 무슨 요일인지 계산해서 보여주는 기능을 구현해보도록 하겠습니다.

 

전체 코드입니다.

 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:gravity="center"
  android:orientation="vertical"
  android:padding="24dp">

  <Button
    android:id="@+id/btn_pick_date"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="날짜 선택하기" />

  <TextView
    android:id="@+id/tv_result"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingTop="24dp"
    android:text="선택한 날짜: "
    android:textSize="18sp" />
</LinearLayout>

 

 

MainActivity.java

public class MainActivity extends AppCompatActivity {

  private Button btnPickDate;
  private TextView tvResult;
  private Calendar calendar;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btnPickDate = findViewById(R.id.btn_pick_date);
    tvResult = findViewById(R.id.tv_result);
    calendar = Calendar.getInstance();

    btnPickDate.setOnClickListener(view -> {
      int year = calendar.get(Calendar.YEAR);
      int month = calendar.get(Calendar.MONTH); // 0부터 시작
      int day = calendar.get(Calendar.DAY_OF_MONTH);

      DatePickerDialog datePickerDialog = new DatePickerDialog(
          MainActivity.this,
          (view1, selectedYear, selectedMonth, selectedDay) -> {
            calendar.set(selectedYear, selectedMonth, selectedDay);
            updateResult();
          },
          year, month, day
      );
      datePickerDialog.show();
    });
  }

  private void updateResult() {
    Date selectedDate = calendar.getTime();

    // "yyyy년 MM월 dd일 (요일)" 형식으로 출력
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy년 MM월 dd일 (EEEE)", Locale.KOREAN);
    String formatted = sdf.format(selectedDate);

    tvResult.setText("선택한 날짜: " + formatted);
  }
}

 

DatePickerDialog 로 부터 받아온 날짜를

 

SimpleDateFormat으로 변환하는 작업을 통해 구현하였습니다.

 

이를 확장해 다양하게 활용해보시면 좋을것같습니다.

 

시연 영상 입니다.