Kalimat diatas merupakan kalimat dengan tenses Past Future Perfect Continuous Tense.
Past Future Perfect Continuous Tense merupakan suatu bentuk kata kerja untuk menyatakan suatu aksi atau situasi imajiner sedang berlangsung pada titik tertentu atau selama periode tertentu di masa lampau.
Untuk menyatakan Past Future Perfect Continuous Tense kita dapat menggunakan pola.
1. S + would + have + been + present participle (-ing) untuk kalimat positif (+)
2. S + would + not + have + been + present participle (-ing) untuk kalimat negatif (-)
3. Would + S + have + been + present participle (-ing) untuk kalimat interogatif (?)
Pada soal, kalimatnya menggunakan kalimat positif sehingga kita menggunakan pola nomor 1 yakni S + would + have + been + present participle (-ing). Dengan begitu, jika kita turunkan sesuai pola, maka bagian rumpang diisi dengan "Would have been learning" sehingga secara utuh kalimatnya menjadi "They would have been learning English grammar for two years by the end of last month". Jawaban lain salah karena akan membuat kalimatnya salah secara gramatikal.
Dengan demikian, jawaban yang tepat adalah D.