2013-05-12 20 views
5

Próbuję zakończyć szybki program "demonstracji nauki" rano na Dzień Matki. Stworzyłem pole tekstowe dla mojej mamy, aby wprowadzić moje urodziny i etykietę, aby wyświetlić liczbę lat, miesięcy, dni i sekund życia, gdy kliknęła przycisk.Oblicz liczbę lat życia w C# WinForm

Poniżej jest część mojego kodu, w którym siedzę:

private void button1_Click(object sender, EventArgs e) 
{ 
    DateTime sonsBirthday = DateTime.Parse(txtSonsBirthday.Text).Date; 

    DateTime now = DateTime.Now; 

    TimeSpan timeSpan = now - sonsBirthday; 
    timeSpan = Convert.TimeSpan(lblTimeAlive); // blue squiggly under TimeSpan here 

Jak zauważył w kodzie, otrzymuję niebieski falowane pod TimeSpan w ostatniej linii; ale nie rozumiem dlaczego. Co ja robię źle?

Jestem tylko studentem: więc mam koncepcję, ale nie jestem przyzwyczajony do formatów datetime i potrzebuję małej pomocy.

+0

To pomysłowy prezent na Dzień Matki! – J0e3gan

+0

Czy kod nie jest zbudowany? Czy występuje wyjątek środowiska wykonawczego? Czy po wyświetleniu wskaźnika myszy nad niebieską falą są wyświetlane jakieś informacje dotyczące problemu? – J0e3gan

+2

Myślę, że ostatnia linia może być logicznie cofnięta. Czy nie chcesz przypisać reprezentacji tekstowej 'timeSpan = now-sonsBirthday' do' lblTimeAlive.Text'? – J0e3gan

Odpowiedz

6

spróbować czegoś takiego:

private void button1_Click(object sender, EventArgs e) 
{ 
    DateTime sonsBirthday = DateTime.Parse(txtSonsBirthday.Text).Date; 

    DateTime now = DateTime.Now; 

    TimeSpan timeSpan = now - sonsBirthday; 
    //timeSpan = Convert.TimeSpan(lblTimeAlive); // old 
    lblTimeAlive.Text = timeSpan.ToString(); // new 

Następnie dostroić ciąg formatowanie timeSpan.

+0

Dziękujemy! Ten drugi facet mi dokuczał, że odrabiam pracę domową (SWEAR TO NIE JEST!) Ja tylko próbuję stworzyć program dla mojej mamy na Dzień Matki! Dzięki za pomoc. Mogę zrobić wszystko, co chciałem teraz zrobić. –

+2

@JeffOrris: Nie ma problemu. Jak zawsze mówię, to twoja strata, jeśli jest to zadanie domowe. Chodzi o to, aby nie poznawać szczegółów, które mają sens w danym języku/interfejsie API/strukturze, z którą pracujesz jako uczeń, a także nauczyć się krytycznie myśleć i jak się uczyć - rozwijać się dzięki pewnym zmianom, które zastąpią szczegóły nowe. Ale wezmę twoje słowo. ;) – J0e3gan

+0

Niestety "Ostatni krok" jest niemożliwy. Rok nie jest ustalonym okresem czasu, zależy też od tego, z którego kalendarza korzystasz. – Aron