Biden says he has cancer