2014-10-22 3 views
0

Как я могу рассчитать разницу между временем и полем «запланированное начало» (в сущности назначения) и поместить значение в другое числовое поле («el_early_cancel_notice» - как поле длительности). Это то, что я написал до сих пор, но я не знаю, как это сделать. Может кто-нибудь помочь?Вычисление разницы между временем теперь и schedulestart crm C#

 if ((serviceAppontment.Attributes.Contains("scheduledstart")) && (serviceAppontment.Attributes["scheduledstart"] != null) && (TimeNow > SchelStart)) 
      { 
       throw new InvalidPluginExecutionException(serviceAppontment.Attributes["scheduledstart"].ToString()); 
       try 
       { 
        //here i need to calculate the difference and i don't know where to begin... 
       }      

ответ

-1

1) Cast вашего поля на время Даты:

DateTime STARTDATE = (DateTime) serviceAppontment.Attributes [ "scheduledstart"];

2) Используйте один из these methods, чтобы получить TimeSpan.

3) Обновление поля el_early_cancel_notice с информацией из TimeSpan: serviceAppontment.Attributes [ "el_early_cancel_notice"] = [Соответствующее число от TimeSpan];

+0

Как я могу использовать это на crm-полях? – userS

+0

Я обновил свой ответ, чтобы отразить это. – Zach

0
DateTime startDate = (DateTime)serviceAppontment["scheduledstart"]; 
TimeSpan diff = DateTime.UtcNow - startDate; 

serviceAppointment["el_early_cancel_notice"] = diff.Days; 
localContext.OrganizationService.Update(serviceAppoinment); 

Поскольку DateTime хранится в формате UTC в CRM, вам необходимо иметь дело с DateTime в UTC. И я предполагаю, что вам нужна продолжительность в днях. Подробнее о TimeSpan here.

Удачи вам!

Смежные вопросы