We use both since and for to say how long something has been happening:
I've been waiting for you since 8 o'clock.
I've been waiting for you for two hours.
We use "since" when we say the beginning of the period (8 o'clock).
We use "for" when we say the period of time (two hours).
She's been working here since April. (= from April until now)
She's been working here for six months. (not 'since six months ')
I haven't seen Tom since Monday . (= from Monday until now)
I haven't seen Tom for three day. (not 'since three days ')
We do not use for in expressions with all (all day / all morning / all week / all may life etc.) See the following examples :
Note the structure How long is it since ...?
A: How long is it since you had a holiday ?
B : it's been two years since I had a holiday . (= I haven't had a holiday for two years.)
It's ages since Tom visited us. (= He hasn't visited us for ages. )
1. It's been snowing............. I got up this morning.
2. Tom's father has been a doctor ........... 20 years.
3. Have you been learning English .............. a long time ?
4. ........ Christmas, the weather has been quite mild.
5. Ann has been on holiday ............ five days.
6. That 's a very old bike. I've had it ......... ages.