david-us.livejournal.comOne of the texts I use is called "Introductory Russian Grammar". On p. 169 there is actually a section entitled "Давно and долго".
Sometimes these grammar books are not always exactly correct. I am going to type, verbatim, what is in this section and I would appreciate it if one of you native Russians would confirm/correct what it says.
* * * * Introductory Russian Grammar * * * *
(1) With the past tense, давно refers to something that occurred long ago, or, when the verb is in the negative, to something which has not occurred in a long time:
Всё это было давно.
All that happened long ago.
Я давно ему не писал.
I haven't written to him for a long time.
Мы давно не были в театре.
We haven't been to the theater for a long time.
(2) With the present tense, давно refers to an action or state initiated in the past but continuing in the present:
Вы давно здесь?
Have you been here long?
Иван давно живёт в Ленинграде.
Ivan has been living in Leningrad for a long time
(NOTE: Oddly, the above sentence is almost exactly the same one in the original homework post.)
(3) Долго, meaning a long time, refers to the duration of an action or condition:
Он долго жил в Советском Союзе, почти всю жизнь.
He lived in the Soviet Union for a long time, almost all his life.
Я вчера долго говорил по телeфону с Борисом.
Yesterday I talked for a long time on the phone with Boris.
Он всегда долго говорит по телефону.
He always talks a long time on the phone.
* * * * end of citation * * * *
Part (3) of the explanation says долго is used for duration. Yet, the example sentence "Вы давно здесь?" specifically addresses a duration, yet, давно is used.
I'm really going to have to think about this. The many examples help, but I still find it a bit confusing - but probably not to a Russian. :)