Просто потратил время на написание этого, основываясь на ответах, поэтому подумал, что поделюсь.
Это основано на ответе Браннона, но позволяет вам получать более одной цифры за раз. В моем случае я использую его для извлечения деталей из даты и времени, сохраненных в int, где цифры представлены в формате ггггммдчннссм_s.
public static int GetDigits(this int number, int highestDigit, int numDigits)
{
return (number / (int)Math.Pow(10, highestDigit - numDigits)) % (int)Math.Pow(10, numDigits);
}
Я сделал это расширением, вы, возможно, не захотите, но вот пример использования:
int i = 20010607;
string year = i.GetDigits(8,4).ToString();
string month = i.GetDigits(4,2).ToString();
string day = i.GetDigits(2,2).ToString();
Результаты:
год = 2001
месяц = 6
день = 7