Joe Biden says he has cancer