Keep in mind that DateDiff works with the number of time-interval boundaries crossed between two times. It doesn't actually subtract the two.
That is,
[tt]DateDiff("m", starttime, endttime)[/tt]
will give different results than
[tt]DateDiff("m", 0, endtime-starttime)[/tt]
For the first way, the difference between 12:00:59 and 12:01:00 is 1 (a minute boundary has been crossed). The second way, the difference is 0 (less than a minute has elapsed).
You are using seconds, so the point may be moot here, but if you switch to a database such as SQL Server which stores datetime values with a resolution of 1/300th of a second you'd find your DateDiff function suddenly behaving differently.
Just like the Access example with minutes above, in SQL Server,
[tt]DateDiff(s, '12:00:00.997', '12:01:01.000')[/tt]
will give 1 second difference, even though only 3 milliseconds have passed.