2016-04-03 17 views
0

arasına çıkartır. Dd/mm/yyyy biçiminde bir doğum tarihi istemek zorundayım. IndexOf ve Substring yöntemlerini kullanarak sayıları gün, ay ve yıl olarak adlandırılan tamsayı değişkenlerine ayıklar. Ben 08 gün, 04 ay ve 19 yıl görüntüleyen 1995/08/04 benim konsol ve giriş koşmak ama 08 gün, 04 ay ve 1995 yılıIndexOf & Substring, tamsayı değişkeni

 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

"DateTime.ParseExact" veya "TryParseExact" yerine el ile bunu yapmak için herhangi bir nedeniniz var mı? –

+1

Sorunuzu belirtin/sorun –

+0

@JonSkeet Tahmin ediyorum bu ödev ....... –

cevap

0

Sen orijinal yıl kesiliyor edilir görüntülemek istediğiniz kodu. Yani bunu değiştirmek gerekir:

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

... Buna:

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

Substring ikinci parametre iade edilmelidir kaç karakter belirtir. Eğer ikinci argümanı tamamen atlarsanız, Substring sadece kalan tüm charaters'ları (bu spesifik örnekte çalışan) geri getirecektir.

+0

Birkaç saat önce çözdüm teşekkürler –