over using timer, calculating exact one second delay

Can you help me to write a macro which generates a one seconds delay by using Timer1 or Timer0 ? In other words, I have tried to write a macro for 1 seconds delay but I could not manage it .Why I am trying to write a macro is because I will use that macro in several place.

If you know more about timer, can you give me general formule when time is calculated ?

EDIT:

pic16f8xx
4MHZ
MPLAB simulation = 5 MHZ


EDIT:

"... [I] actually don't just want a delay, but using interrupts to execute a task later when 1 second has passed while doing other things in the meantime. .."

-
There's no such thing as a generic "Timer1". Tell us which controller you're using, and at what frequency it's clocked. – stevenvh Apr 12 '12 at 8:16
Do you really need to use the timer, e.g. to save power? If not, you could just use a busy wait loop instead. – noah1989 Apr 12 '12 at 8:26
In your updated question you specify, that you want to use the CPU for "more efficiently", which implies that you actually don't just want a delay, but using interrupts to execute a task later when 1 second has passed while doing other things in the meantime. could you explain what exactly you're trying to do? – noah1989 Apr 12 '12 at 8:33
@noah1989 thanks for your comment. Please see my edit version – user1315050 Apr 12 '12 at 10:18