IndexOf&子串将#提取为整数变量

时间:2016-04-03 08:20:55

标签: c# visual-studio

我必须以dd / mm / yyyy的形式要求出生日期,使用IndexOf和Substring方法将数字提取到称为日,月和年的整数变量中。我运行我的控制台并输入08/04/1995它显示08天,04个月和19年但我希望它显示08天,04个月和1995年

        string dateOfbirth;
        string temp;

        Console.WriteLine("Please enter a DOB in this form dd/mm/yyyy");
        temp = Console.ReadLine();
        dateOfbirth = temp;

        int length = dateOfbirth.Length;
        int index1 = dateOfbirth.IndexOf('/');
        int index2 = dateOfbirth.IndexOf('/', index1 + 1);

        string year = dateOfbirth.Substring(index2 + 1, length / index2 / 1);
        string month = dateOfbirth.Substring(index1 + 1, index2 / index1 / 1);
        string day = dateOfbirth.Substring(0, index1);

        Console.WriteLine( day + " day " +  month + " month " +  year + " year ");

        Console.ReadLine();

1 个答案:

答案 0 :(得分:0)

您正在截断原始代码中的年份。所以你需要改变这个:

object

......对此:

  string year = dateOfbirth.Substring(index2 + 1, length / index2 / 1);

Substring的第二个参数指定应返回多少个字符。如果完全省略第二个参数,则Substring将返回所有剩余的字符(在此特定示例中有效)。