2016-06-10 5 views
-2

Я хочу, чтобы преобразовать строку ниже для того чтобы датировать типа в C#,Преобразование строки в дату C#

"Q2(JUN)-2016" 
    to 
Q2-2016 (which is of date type) 

Результат должен быть типа даты и следует указать quarter2.

+0

Что вы имеете в виду «который имеет тип даты»? Насколько я знаю, в .NET BCL нет типа, который будет представлять «квартал 2 2016». (Такой тип не будет называться «Date» идеально в любом случае, так как четверть не является датой ...) –

+0

Я имею в виду дату, которая может быть представлена ​​в виде четверти. – Prasu

+0

Но четверть * не * дата. Это как сказать «Диапазон 1-10 - целое число». И какой тип вы имеете в виду? Или вы спрашиваете, есть ли * такой тип в .NET? (Нет, насколько мне известно, но вы можете создать свой собственный.) –

ответ

1

Вы могли бы сначала разобрать его DateTime, а затем использовать простой расчет, чтобы получить четверть:

string quarterInfo = "Q2(JUN) - 2016"; 
DateTime monthDt; // will be parsed to: 06/01/2016 00:00:00 
if (DateTime.TryParseExact(
    quarterInfo.Substring(quarterInfo.IndexOf('(') + 1), 
    "MMM) - yyyy", 
    DateTimeFormatInfo.InvariantInfo, 
    DateTimeStyles.None, 
    out monthDt)) 
{ 
    int year = monthDt.Year; 
    int quarter = (monthDt.Month + 2)/3; 
    Console.WriteLine("Q{0}-{1}", quarter, year); // Q2-2016 
} 
Смежные вопросы