Я столкнулся с проблемой настройки моего значения DateTimePicker в своем приложении. Я прочитал все о различных строках форматирования, которые вы можете использовать, чтобы настроить способ интерпретации даты и времени. Проблема в том, что я действительно хочу, чтобы часть текста игнорировалась в строке пользовательского формата, чтобы я мог добавить в этом сезоне строку в начало DateTimePicker.DateTime Custom Format for for Seasons
Например, давайте проведем сегодняшнюю дату, которая будет 7 августа 2013 года в 17:30 (в США). Если я использую строку пользовательского формата «MMM.d -h: mm tt», то дата будет показана с 7 августа по 5:30 вечера. Итак, это прекрасно. Только, я хочу добавить сезон к началу строки. Таким образом, в этом случае это будет «Лето: 7 августа - 17:30».
Проблема, с которой я столкнулась, заключается в том, что если я вставляю слово «лето» в начало строки пользовательского формата, тогда он фактически интерпретирует значение double mm как значение GetMinute для dateTime. Я бы хотел, чтобы в сезоне оставался буквальным, но остальная часть строки формата должна интерпретироваться (если это имеет смысл).
Вот код, я использую:
public Form1()
{
InitializeComponent();
dateTimePicker1.Format = DateTimePickerFormat.Custom;
season = getSeason(dateTimePicker1.Value);
dateTimePicker1.CustomFormat = convertSeason(season) + " : " + dt_format;
}
public int season = 1; //set default to summer
public string dt_format = "MMM.d -h:mm tt";
private int getSeason(DateTime date)
{
float value = (float)date.Month + date.Day/100; // <month>.<day(2 digit)>
if (value < 3.21 || value >= 12.22) return 3; // Winter
if (value < 6.21) return 0; // Spring
if (value < 9.23) return 1; // Summer
return 2; // Autumn
}
private string convertSeason(int value)
{
string season = "Spring";
if (value == 1) season = "Summer";
else if (value == 2) season = "Autumn";
else if (value == 3) season = "Winter";
return season;
}
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
season = getSeason(dateTimePicker1.Value);
dateTimePicker1.CustomFormat = convertSeason(season) + " : " + dt_format;
}
Почему вы не можете добавить строку сезона после того, как у вас есть форматированная строка DateTime? –
Редактировать каждый ConvertSeason в этом: string season = "'Spring'" – Marek
@ManishMishra Потому что это DateTimePicker? –