MagSky
MagSky

Reputation: 1

How do I work with the system clock / time in xamarin forms?

for a school project i'm making an app. The app is supposed to keep track of the time that you spend working on something specific. For example when i'm going to start my work shift, I would press a (start)button so the timer starts off and counts how much I've worked until i press a stop button.

I've got the xaml ready with all the buttons and labels.

My main problem is the timer. I would like to have a stopwatch underneath my start button, that shows the elapsed time. I've been looking for many many hours on github, stackoverflow, google and youtube and haven't found a solution.

If it isn't easy/possible to implement a stopwatch, i would at least need the app to check for the system time when the start and stop buttons are clicked, to calculate the difference in time.

So far I haven't been able to get any of those functions working. Thanks in advance! - MagSky

Upvotes: 0

Views: 1745

Answers (1)

Jason
Jason

Reputation: 89117

.NET has a built in Stopwatch class you can use

Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();

// do some work here

stopWatch.Stop();
// Get the elapsed time as a TimeSpan value.
TimeSpan ts = stopWatch.Elapsed;

to display a Timer in the UI, use System.Timers.Timer instead

int secs = 0;
// fire an event every 1000 ms
Timer timer = new Timer(1000);
// when event fires, update Label
timer.Elapsed += (sender, e) => { secs++; myLabel.Text = $"{secs} seconds"; };
// start the timer
timer.Start();

Upvotes: 2

Related Questions