我觉得是选D
a.for a long time:很长一段时间
他的爷爷已经去世了很长一段时间:His grandfather has died for a long time.(要用完成时)
b.in two years:在两年内
句子用died过去式 就是已经去世了.就不可能再说在两年内会去世.
c.yesterday night 昨天晚上
一般英语中昨天晚上会用 last night 而不是yesterday night.
如果last night 就可以.意思是他爷爷昨晚去世了(刚好是用过去式)
d.in 1988 在1988年
他爷爷在1988年去世了.用过去式