His grandfather died three years ago.(用for three years 改写句子)

问题描述:

His grandfather died three years ago.(用for three years 改写句子)
那么我写成His grandfather has died for three years .错在哪里?为什么

His grandfather has been dead for three years
因为die是瞬间的,你总不能让他死这个动作做三年吧
那个属于垂死挣扎,不是die,另有词汇的那么请问一下,dead在这里是不是adj.?dead 只能为adj 或者是adv这里是adj