I use a google sheet for my standard dive log. In addition to standard log info (dive number, depth, time, etc), I add extra lines for maintenance items (Reg Service, Hose Replacement, Battery Swap). Since I have dates of dives and service, I can automatically add all the dive times after the last service (note this only includes the time during the actual dive). This is done though some fairly long sheet equations
=SUMIFS(indirect(ADDRESS(max(filter(row(diveTime:diveTime),len(diveTime:diveTime), notes:notes="Reg Service - DC3"))+1, 4, 4) & ":diveTime"), indirect(ADDRESS(max(filter(row(diveTime:diveTime),len(diveTime:diveTime), notes:notes="Reg Service - DC3"))+1, 5, 4) & ":tankSize"), "<=120") & " mins"
This will sum up the total dive times for each dive after the last instance of my reg service. Additionally, it will ignore the dive if the tank size is >120cf (meaning the use of doubles and different regs). It is fairly easy to tag a dive with specific equipment to be included in a sum.
(Service Type) (Date of Service)(Dives Since Service)(Minutes of Use Since Service)(Average Minutes of Use For Each Service)
Time Since Service - DC3 2017-10-07 85 dives 4910 mins AVG(3402)
Hose - Primary 2nd 2015-08-17 217 dives 3 years
Hose - Secondary 2nd 2016-12-17 145 dives 2 years
Hose - LPI 2016-12-17 145 dives 2 years
Hose - Drysuit LPI 2018-02-15 74 dives 1 years
Hose - HP 2016-12-17 145 dives 2 years
Battery - Leonardo 2017-05-12 121 dives 7089 mins AVG(4493)
Battery - Perdix 2018-09-30 33 dives 1640 mins AVG(1434)
Battery - Transmitter 2018-04-05 69 dives 3888 mins AVG(3486)