using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// /// Дата в выпадающем списке /// public class DateTimePicker : MonoBehaviour { public Dropdown Day; public Dropdown Month; public Dropdown Year; public DateTime Date { get { var date = new DateTime(int.Parse(Year.options[Year.value].text), int.Parse(Month.options[Month.value].text), int.Parse(Day.options[Day.value].text)); return date; } set { Days(); //Year.value = Date.Year.; Month.value = Date.Month - 1; Day.value = Date.Day - 1; oldYear = Year.value; oldMonth = Month.value; } } int oldYear = -1; int oldMonth = -1; // Start is called before the first frame update void Start() { DateNow(); } // Update is called once per frame void Update() { if (oldYear == -1 || oldMonth == -1) DateNow(); if (oldYear != Year.value || oldMonth != Month.value) { Days(); oldYear = Year.value; oldMonth = Month.value; } } void Days() { Day.options.Clear(); var year = int.Parse(Year.options[Year.value].text); var month = int.Parse(Month.options[Month.value].text); var days = DateTime.DaysInMonth(year, month); for (int d = 1; d <= days; d++) Day.options.Add(new Dropdown.OptionData($"{d}")); Day.value = 0; } void DateNow() { for (var y = 2020; y <= DateTime.Now.Year; y++) Year.options.Add(new Dropdown.OptionData($"{y}")); for (var m = 1; m <= 12; m++) Month.options.Add(new Dropdown.OptionData($"{m}")); Year.value = Year.options.Count - 1; Month.value = DateTime.Now.Month - 1; oldYear = Year.value; oldMonth = Month.value; Days(); Day.value = DateTime.Now.Day - 1; } }