Чтобы вычесть две даты, когда ноль, одна или обе из них обнуляются , вы просто вычитаете их . Оператор вычитания делает правильные вещи; Вам не нужно самостоятельно писать всю логику, которая уже есть в операторе вычитания.
TimeSpan? timeOnPlan = DateTime.Now - user.PlanStartDate;
return timeOnPlan == null ? 0 : timeOnPlan.Days / 7;