The DateDiff function "Returns a Long value specifying the number of time intervals between two Date values."
DateInterval.Day is the Day member of the DateInterval collection, so the DateDiff function will return the number of days between the two dates, actually the number of Day "boundaries". By boundaries I mean if you gave it 11pm on day one and 1am the next day it would still return 1 day.
The formula is then converting or as someone once said to me "Coercing into a decimal" using the Cdec() function. i.e. it is converting the Long value returned by the DateDiff function into a Decimal value. I won't go into the difference between Long and Decimal datatypes here, suffice to say Long is a floating point type and decimal is an exact numeric type - exacts are generally safer to work with, but this conversion is probably unecessary in this instance because giving DateDiff function a Day interval is only ever going to return integers (not the datetype).
After the Cdec() function, the formula is then multiplying by -1. This is a common trick to convert positive numbers to negative, or negative numbers to positive. For some reason the author of the formula wants to change the sign of the returned value.
One flaw with this formula is that it assumes the date1 and date2 are always in a certain order. For example if Date1 is usually earlier than Date2, this formula will return a negative value because it is being multiplied by -1.
I don't think I can explain this more thoroughly, but it would be preferable if you explained why you need to understand this formula, especially the context of its use.
If you gave the formula these two dates 2013-02-01 and 2013-02-2 as date1 and date2 it would give you a result of -1.
If you gave it those two dates the other way around it would give you +1.