Guest User

Untitled

a guest
Oct 5th, 2023
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.61 KB | None | 0 0
  1. using System.Globalization;
  2.  
  3. static double? CalculateAverageSession(List<CodeSession?>? allSessions)
  4. {
  5.     List<double?>? values = GetTotalSessionTime(allSessions);
  6.  
  7.     double? totalSeconds = 0;
  8.  
  9.     foreach (double? value in values)
  10.     {
  11.         totalSeconds += value;
  12.     }
  13.  
  14.     double? averateTime = totalSeconds / values.Count;
  15.  
  16.     return averateTime;
  17. }
  18.  
  19. static List<double?>? GetTotalSessionTime(List<CodeSession?>? allSessions)
  20. {
  21.     List<double?>? values = new();
  22.  
  23.     string format = @"hh\:mm";
  24.     CultureInfo? provider = CultureInfo.InvariantCulture;
  25.  
  26.     foreach (CodeSession? session in allSessions)
  27.     {
  28.         TimeSpan startTime;
  29.         TimeSpan endTime;
  30.  
  31.         TimeSpan start = TimeSpan.ParseExact(session.StartTime, format, provider);
  32.         TimeSpan end = TimeSpan.ParseExact(session.EndTime, format, provider);
  33.         TimeSpan difference = end.Subtract(start);
  34.  
  35.         double? timeInSeconds = difference.TotalSeconds;
  36.  
  37.         values.Add(timeInSeconds);
  38.     }
  39.  
  40.     return values;
  41. }
  42.  
  43. List<CodeSession?>? allSessions = new() {};
  44.  
  45.  
  46. CodeSession? session = new() { Id = 1, TodaysDate = "10/05/2023", StartTime = "8:00", EndTime = "12:00", Duration = "04:00:00" };
  47. CodeSession? session1 = new() { Id = 1, TodaysDate = "10/05/2023", StartTime = "9:00", EndTime = "13:00", Duration = "04:00:00" };
  48. CodeSession? session2 = new() { Id = 1, TodaysDate = "10/05/2023", StartTime = "10:00", EndTime = "14:00", Duration = "04:00:00" };
  49. CodeSession? session3 = new() { Id = 1, TodaysDate = "10/05/2023", StartTime = "11:00", EndTime = "15:00", Duration = "04:00:00" };
  50. CodeSession? session4 = new() { Id = 1, TodaysDate = "10/05/2023", StartTime = "12:00", EndTime = "16:00", Duration = "04:00:00" };
  51. CodeSession? session5 = new() { Id = 1, TodaysDate = "10/05/2023", StartTime = "13:00", EndTime = "17:00", Duration = "04:00:00" };
  52. CodeSession? session6 = new() { Id = 1, TodaysDate = "10/05/2023", StartTime = "14:00", EndTime = "18:00", Duration = "04:00:00" };
  53.  
  54. allSessions.Add(session);
  55. allSessions.Add(session1);
  56. allSessions.Add(session2);
  57. allSessions.Add(session3);
  58. allSessions.Add(session4);
  59. allSessions.Add(session5);
  60. allSessions.Add(session6);
  61.  
  62. var totalTime = GetTotalSessionTime(allSessions);
  63. var averateTime = CalculateAverageSession(allSessions);
  64.  
  65. Console.WriteLine("Total Time: {0}", totalTime);
  66. Console.WriteLine("Average Time: {0}", averateTime);
  67.  
  68. class CodeSession
  69. {
  70.     public int? Id { get; set; }
  71.     public string? TodaysDate { get; set; }
  72.     public string? StartTime { get; set; }
  73.     public string? EndTime { get; set; }
  74.     public string? Duration { get; set; }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment