[flutter] 플러터 DatePicker로 날짜 유효성 검사하기

플러터(Flutter)를 사용하여 DatePicker로 사용자가 선택한 날짜의 유효성을 검사하는 방법을 알아보겠습니다.

DatePicker로 날짜 선택하기

플러터에서 DatePicker를 사용하여 사용자로부터 날짜를 선택할 수 있습니다. 다음은 DatePicker를 통해 날짜를 선택하는 간단한 예제 코드입니다.

import 'package:flutter/material.dart';

class DatePickerScreen extends StatefulWidget {
  @override
  _DatePickerScreenState createState() => _DatePickerScreenState();
}

class _DatePickerScreenState extends State<DatePickerScreen> {
  DateTime selectedDate = DateTime.now();

  Future<void> _selectDate(BuildContext context) async {
    final DateTime picked = await showDatePicker(
      context: context,
      initialDate: selectedDate,
      firstDate: DateTime(2015, 8),
      lastDate: DateTime(2101),
    );
    if (picked != null && picked != selectedDate) {
      setState(() {
        selectedDate = picked;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('날짜 선택'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text("${selectedDate.toLocal()}".split(' ')[0]),
            SizedBox(height: 20.0),
            ElevatedButton(
              onPressed: () => _selectDate(context),
              child: Text('날짜 선택'),
            ),
          ],
        ),
      ),
    );
  }
}

위 코드에서 _selectDate 메서드를 통해 DatePicker를 표시하고 선택된 날짜를 selectedDate에 업데이트합니다.

선택한 날짜의 유효성 검사

Picker를 통해 선택된 날짜의 유효성을 검사하려면 선택된 날짜가 특정 기준을 충족하는지 확인해야 합니다. 예를 들어, 오늘 이전의 날짜를 선택하지 못하도록 하거나 특정 범위의 날짜만 선택할 수 있도록 제한할 수 있습니다. 선택된 날짜의 유효성을 확인하는 방법은 다음과 같습니다.

Future<void> _selectDate(BuildContext context) async {
  final DateTime picked = await showDatePicker(
    context: context,
    initialDate: selectedDate,
    firstDate: DateTime(2015, 8),
    lastDate: DateTime(2101),
  );
  if (picked != null && picked != selectedDate) {
    if (picked.isAfter(DateTime.now())) {
      // 선택된 날짜가 오늘 이후인 경우
      // 유효성 검사 실패 처리
    } else {
      setState(() {
        selectedDate = picked;
      });
    }
  }
}

위 코드에서 picked.isAfter(DateTime.now())를 사용하여 선택된 날짜가 오늘 이후인지를 확인하고 유효성을 검사하고 있습니다.

결론

플러터를 사용하여 DatePicker로 날짜를 선택하고 선택된 날짜의 유효성을 검사하는 방법을 살펴보았습니다. 이를 통해 사용자가 올바른 날짜를 선택하도록 보장할 수 있습니다.

참고 자료:

이상으로, 플러터 DatePicker로 날짜 유효성을 검사하는 방법을 소개하였습니다.