Лингвистика

Вопрос по поводу past perfect

'It has been five years since he smoked' почему тут past perfect! ведь тут точно время показно.
has been это Present perfect
(в Past perfect было бы haD been)

Потому что речь идёт о настоящем времени: он сейчас не курит.
ЕР
Еленa Романтеева
70 631
Лучший ответ
Азамат Бимолдин так тут точно время ведь показано ( в past perfect) не говорится о конкретном времени
It has been five years since he smoked.
(Вот) уже пять лет (прошло с тех пор), как он курил... (в последний раз).

(Всё, что в скобках, - мои дополнения с целью пояснения, в чём тут "фокус").
Present Perfect здесь выбран правильно. Автор подчёркивает, что пять лет не-курения (включая "момент речи" - вот они, тёпленькие, триумфальные) - это его достижение, результат работы (над собой)...
Парень бросил курить, пусть давно, но это актуально для него и сейчас. Результат налицо. Он молодец. Он горд и счастлив. Позитивное изменение сознания - улучшение поведения, здоровья, семейных отношений и т. д. и т. п..

Present Perfect - это ещё и получение опыта, изменение "состояния" к "моменту речи". (и неважно, когда совершалось действие).
Since - один из формальных признаков времени для выбора Present Perfect (указан отрезок времени, связанный с настоящим моментом).
А какое, по-вашему, должно быть время? Ответ на этот вопрос поможет понять ваше затруднение.
It has been five years since he smoked - здесь нужно подставить Perfect, ведь в настоящем времени его тут нет. Если брать "been five" - то не будет и Present, поэтому указываем местоположение и время, обязательно.
Потому что здесь указано не конкретное время, а временной отрезок, который все еще длится: результат его отказа от курения в прошлом актуален в настоящем - это типичное для present perfect значение.
С предлогами since и for для обозначения периодов времени используется Perfect.
He hasn't smoked for five years.
It has been ...
Это одна из функций Perfect, надо просто запомнить.
Ну и поскольку он всё ещё не курит, здесь Present Perfect.