[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로 날짜 유효성을 검사하는 방법을 소개하였습니다.