Can you provide a sample of your database, with enough junk data to simulate the problem? Are you aggregating your data such that each day has a single record or are you aggregating your data on the report so there are multiple records for each day in the query driving your report?
If it's the former you could have, in your report footer a formula like =dcount("*", "Queryname") to give you the number of days represented in your query then perform your calculation of effective time using this calculation like
=dcount("*", "Queryname") * .5
If it's the latter you may have to do some code to cycle through the recordset to get the number of individual days represented in your dataset or count them something like:
Code:
dim db as database
dim rst as recordset
set db = currentdb
set rst = db.openrecordset("SELECT [DateField] FROM QueryName GROUP BY [DateField]")
rst.movelast
DaysInReport = rst.recordcount
rst.close
set rst = nothing
set db = nothing
in the ON LOAD or ON OPEN event of your report