1. Два способи відповісти на «Як довго?»
Уяви відрізок від початку дії до моменту розмови. For вимірює довжину цього відрізка: двадцять хвилин. Since називає його ліву межу: від 10:00. Це різні способи подати час, а не різні дії.
Щоб вибрати слово, подивися на вираз ПІСЛЯ нього: це кількість часу чи момент, від якого ведемо відлік? Не перекладай українське «вже» автоматично одним англійським словом.
for + тривалість; since + точка початку
I have been waiting for twenty minutes.
Я чекаю вже двадцять хвилин.
Twenty minutes вимірює тривалість; годину початку не названо.
I have been waiting since ten o'clock.
Я чекаю з десятої години.
Ten o'clock — початок очікування. Якщо зараз 10:20 того самого дня, обидва приклади описують той самий відрізок.
2. For: точна або приблизна довжина періоду
Після for можна назвати точну тривалість: ten minutes, three weeks, two years. Можна й не знати точного числа: a while, a long time, ages. Ages у розмові означає «дуже довго», а не певну кількість років.
For the last two weeks означає «протягом останніх двох тижнів». Наявність last не перетворює відрізок на точку: порівняй for the last week і since last week.
We have been discussing the plan for a while.
Ми вже деякий час обговорюємо план.
A while — приблизна тривалість, тому for.
She has been using the new office for the last two weeks.
Останні два тижні вона користується новим офісом.
The last two weeks називає весь період, а не день його початку.
3. Since: дата, година або подія
Початок можна назвати датою, днем, годиною або іменною групою: since March, since Tuesday, since 8:30, since the move. Дату не треба перетворювати на кількість років, якщо невідомий точний момент розмови.
Після since може бути ціла частина речення: since we opened the shop. Для одноразової події початку часто вживаємо Past Simple. Але правило «після since завжди Past Simple» хибне: можливий і Present Perfect, зокрема коли наступна частина описує стан, який досі триває.
We have been receiving orders since we opened the shop.
Ми отримуємо замовлення відтоді, як відкрили магазин.
Відкриття — подія, від якої ведеться відлік; opened природно називає її в Past Simple.
Since I have been at home, I have been reading more.
Відтоді як я перебуваю вдома, я більше читаю.
Перебування вдома триває й тепер, тому після since тут природний Present Perfect.
4. Дія донині: основна модель цього уроку
Для діяльності, що почалася раніше й триває донині, зручно вживати have/has been + дієслово з -ing, а потім додати тривалість або початок. Тут основне рішення — for чи since; саму побудову Present Perfect Continuous вивчай окремо.
Тривала діяльність не обов'язково відбувається без жодної перерви. Навчання щовечора або поїздки велосипедом кілька разів на тиждень теж можуть утворювати звичку, яка почалася раніше й досі триває.
підмет + have/has been + V-ing + for/since + часовий вираз
- subject / S —
- Підмет: про кого або що йдеться в реченні; з ним узгоджується дієслово. У The book was written підмет — the book, хоча дію виконує хтось інший.
- verb / V —
- Дієслово: дія або стан, наприклад work чи be. Форму визначає конкретна схема.
- V-ing / -ing —
- Форма дієслова із закінченням -ing: working, going. Її роль залежить від конструкції.
The technician has been checking the lift for an hour.
Технік перевіряє ліфт уже годину.
Робота ще триває; for an hour вимірює її тривалість.
I have been cycling to work twice a week since April.
З квітня я двічі на тиждень їжджу на роботу велосипедом.
Since April позначає початок регулярних поїздок, а не однієї безперервної поїздки.
5. Як запитати про тривалість і початок
How long have you been ...? запитує про тривалість діяльності донині. У відповіді можна назвати відрізок із for або початок із since: обидва способи допомагають зрозуміти, як довго це триває.
Якщо потрібен саме початок, можна запитати When did you start ...? або Since when have you been ...? Останнє питання іноді виражає здивування; у нейтральній розмові питання про початок часто простіше. Коротка відповідь For about an hour цілком природна, якщо дію вже названо.
How long have you been looking for a flat? — For about a month.
Як довго ти шукаєш квартиру? — Приблизно місяць.
Відповідь називає довжину пошуку. Перше for у looking for a flat належить до виразу «шукати», а не вимірює час.
When did you start using this app? — In January. I have been using it since then.
Коли ти почав користуватися цим застосунком? — У січні. Відтоді й користуюся.
Since then відсилає до вже названого початку — січня.
6. Період у запереченні
For і since зберігають свої значення в запереченнях. I haven't received a reply for three days означає, що протягом трьох днів не було жодної відповіді. Since Monday назве початок такого періоду без відповіді.
Будь уважним до того, що саме заперечуєш. I haven't been sleeping well for weeks означає, що сон протягом цього часу поганий, а не що людина кілька тижнів взагалі не спить. Якщо хтось помилково назвав завелику тривалість, уточни справжнє число: only ten minutes.
We have not received any updates since Thursday.
Із четверга ми не отримали жодних новин.
Thursday задає початок періоду, у якому не було оновлень.
I have not been sleeping well for several nights.
Уже кілька ночей я погано сплю.
For several nights — тривалість повторюваної проблеми; well уточнює, що заперечується хороший сон.
7. For і since не обирають час замість тебе
For називає тривалість і в завершеному минулому, і в планах на майбутнє. Саме речення та ситуація показують, де розташований період. Наявність for не означає, що дія обов'язково триває зараз.
Present Perfect Simple теж може описувати стан або діяльність донині з for/since: I have lived here for years. З дієсловом know для знайомства вживаємо have known, а не have been knowing. Детальне зіставлення простого й тривалого перфекта — інша тема; тут не оголошуємо правильний простий перфект помилкою.
I worked in a bookshop for two months last summer.
Минулого літа я два місяці працював у книгарні.
For two months називає завершений період у минулому.
We will rent a meeting room for three hours tomorrow.
Завтра ми орендуємо кімнату для зустрічей на три години.
Та сама функція for — тривалість, але період запланований у майбутньому.
I have known my neighbour since 2018.
Я знаю свого сусіда з 2018 року.
Знайомство триває; since задає початок, а have known є природною формою стану.
8. Два допустимі варіанти, які не варто «виправляти»
Ago перетворює тривалість на відносну точку в минулому: two years — два роки, two years ago — момент два роки тому. Тому since two years ago граматично можливе, хоча for two years часто звучить простіше. Не плутай його з неправильним since two years.
У деяких стверджувальних реченнях for перед тривалістю можна опустити: I've been waiting twenty minutes. Це не помилка. У запереченнях for зазвичай зберігаємо. Якщо вправа прямо просить використати for, варіант без нього не виконує навчальну умову, але від цього не стає неграматичним.
I have been attending these classes since two years ago.
Я відвідую ці заняття відтоді, як почав два роки тому.
Two years ago задає початок. Коротший природний спосіб передати ту саму тривалість — for two years.
We have been waiting twenty minutes.
Ми чекаємо вже двадцять хвилин.
For перед twenty minutes можна додати, але цей стверджувальний варіант уже правильний.
Типові помилки
Неправильно:I have been learning French since two months.
Правильно:I have been learning French for two months.
Two months — тривалість, не точка початку; мінімально заміни since на for. Since two months ago було б іншим, граматично можливим способом назвати початок.
Неправильно:We have been waiting for two hour.
Правильно:We have been waiting for two hours.
For правильно вводить тривалість, але після two потрібна множина hours. Перевіряй не лише прийменник, а й форму одиниці часу: an hour, two hours.
Неправильно:She have been working here for six weeks.
Правильно:She has been working here for six weeks.
For six weeks правильно називає тривалість, але з she потрібне has. Заміна часового виразу не усуває помилку узгодження.