private static Boolean GetYearMonthOrder(String pattern, DateTimeFormatInfo dtfi, out int order)
{
int yearOrder = -1;
int monthOrder = -1;
int orderCount = 0;
bool inQuote = false;
for (int i = 0; i < pattern.Length && orderCount < 2; i++)
{
char ch = pattern[i];
if (ch == '\'' || ch == '"')
{
inQuote = !inQuote;
}
if (!inQuote)
{
if (ch == 'y')
{
yearOrder = orderCount++;
//
// Skip all year pattern charaters.
//
for(; i+1 < pattern.Length && pattern[i+1] == 'y'; i++)
{
}
}
else if (ch == 'M')
{
monthOrder = orderCount++;
//
// Skip all month pattern characters.
//
for(; i+1 < pattern.Length && pattern[i+1] == 'M'; i++)
{
}
}
}
}
if (yearOrder == 0 && monthOrder == 1)
{
order = ORDER_YM;
return true;
}
if (monthOrder == 0 && yearOrder == 1)
{
order = ORDER_MY;
return true;
}
order = -1;
return false;
}