I let a user to select a day of month, a month itself and a year. But I need to check if the date correct. For example, it's not 29th of February when the year is not leap. Or it's not 31st of September because September has only 30 days. For now I have a complex if/else logic for that to check is the year leap or not. Then check the month to get the maximumamount of days it can have. But is there more 'elegant' way to do that? Maybe some library?