'how to calculate working hours from api data in flutter

i have fetched data from an api which contains employees working time, i want to calculate total working hours each day

here's how i get the data from the api for 1 single day

 Future<List> getPunchData(String empCode,  DateTime date) async {
String ip = await confObj.readIp();
DateTime end = new DateTime(date.year, date.month, date.day, 23,59,59);

final response = await http.get(Uri.parse("url/$empCode&$date&$end" ));
final String t = response.body;
var jsonData =jsonDecode(t);
return jsonData;
}

the api result is this:

 {
 "id": 10,
 "punch_time": "2022-03-08 13:30:19.000000",
 },
 {
 "id": 11,
 "punch_time": "2022-03-08 16:22:39.000000",
 }..
  ..
  ..

how can i automatically calculate and isplay total hours when after the widget is loaded



Solution 1:[1]

You can use the parse function of the DateTime object to convert the String date into DateTime.

The code would somewhat look like this (can't say for sure as I don't know your API):

final DateTime startTime = DateTime.parse(jsonData[0]['punch_time']);
final DateTime endTime = DateTime.parse(jsonData[1]['punch_time']);

Once you have the DateTime object, you can use the difference function to get a Duration object which will tell you the hours an employee has worked.

final Duration durationWorked = startTime.difference(endTime);
final int hoursWorked = durationWorked.inHours;

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 eNeM