Gå til innhold

C#: Trenger masse hjelp til en applikasjon!


Anbefalte innlegg

Skrevet

Hei. Jeg er en nybegynner innen C# og trenger masse hjelp til en relativt enkel applikasjon.

 

Første oppgave er som følger:

 

Trenger å regne differansen mellom to tider, som bli spesifisert av bruker. Dette trenger jeg så å skrive ut til brukeren som et desimaltall.

 

F.eks:

Hvor lang tid går det mellom klokkeslettene 16:00 og 22:15?

Svar: 6.25 timer

 

Oppgave 2:

I textBoxene hvor brukeren skriver inn tidene, ønsker jeg å gi en feilmelding i form av en MessageBox, dersom brukeren skriver inn tidene på et annet formt enn f.eks 16:00.

 

Jeg bruker Visual Studio 2010 hvis det hjelper. Kan forklare mer om prosjektet dersom det hjelper deg å hjelpe meg :p.

Videoannonse
Annonse
Skrevet (endret)

Et "løsningsforslag":

 

static void Main(string[] args)
	{
		Console.WriteLine("Klokkeslett 1 (hh:mm)");
		var l1 = Console.ReadLine();
		Console.WriteLine("Klokkeslett 2 (hh:mm)");
		var l2 = Console.ReadLine();
		var a = DateTime.Parse(l1);
		var b = DateTime.Parse(l2);
		var span = a - b;
		Console.WriteLine(Math.Abs(span.TotalHours));
		Console.Read();
	}

 

Men dette er i bunn og grunn såpass enkle ting at litt Googling og kanskje en C# introduksjonsbok kunne hjulpet i gang.

 

MSDN Library er stedet å gå for komplett referanse av språk og innebygde bibliotek:

http://msdn.microsof...y/618ayhy6.aspx

 

Edit: Oppdaterte koden til å ta user input

Edit2: I forhold til oppgave 2 kan du bruke DateTime.TryParse på TextBox TextChanged eventen og bruke MessageBox.Show() funksjonen til å vise feilmeldingen.

Endret av radivx
Skrevet

radivx: hva med span == b - a istedefor? *pirke pirke* Da slipper du abs kallet hvis verdiene er korrekt. Og hvem bryr seg vel om å validere inndata? Alle vet jo at det aldri oppstår brukerfeil.

 

Btw;

Console.WriteLine(Math.Abs((DateTime.Parse(Console.ReadLine()) - DateTime.Parse(Console.ReadLine())).TotalHours));

Skrevet

radivx: hva med span == b - a istedefor? *pirke pirke* Da slipper du abs kallet hvis verdiene er korrekt.

Console.WriteLine(Math.Abs((DateTime.Parse(Console.ReadLine()) - DateTime.Parse(Console.ReadLine())).TotalHours));

Så du gikk imot din egen anbefalning når du la inn et eksempel?

Skrevet

Nei, pga. Han leser inn verdiene hver for seg og kan selv bestemme rekkefølgen av variablene når det kommer til Matte operasjonen.I eksemplet mitt leser jeg alt i samme linje og kan derfor ikke snu rundt på variablene matte operasjonen.

Skrevet

Nei, pga. Han leser inn verdiene hver for seg og kan selv bestemme rekkefølgen av variablene når det kommer til Matte operasjonen.I eksemplet mitt leser jeg alt i samme linje og kan derfor ikke snu rundt på variablene matte operasjonen.

Du trenger da ikke det :)

Console.WriteLine((-TimeSpan.Parse(Console.ReadLine()) + TimeSpan.Parse(Console.ReadLine())).TotalHours);

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...