using System.Collections.Generic;
public static void Main()
var jsonobject = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(jsonString);
CronExpression expression = CronExpression.Parse(exp);
DateTime? next = expression.GetNextOccurrence(Convert.ToDateTime("2020 - 06 - 01 13:46:47.357").ToUniversalTime(), TimeZoneInfo.Local);
var dateoffset = Convert.ToDateTime("2020 - 06 - 01 13:46:47.357").ToUniversalTime().Subtract(next.GetValueOrDefault());
StringBuilder sb = new StringBuilder();
var kvlst = new List<KeyValuePair<string, string>>();
foreach (var item in jsonobject)
string str = JsonConvert.SerializeObject(item);
var dicobj = JsonConvert.DeserializeObject<Dictionary<string, string>>(str);
foreach (var dicitem in dicobj)
var kv = new KeyValuePair<string, string>();
DateTime newdate = DateTime.MinValue;
if (DateTime.TryParse(dicitem.Value, out DateTime datetimeItemValue))
DateTime jobrundate = Convert.ToDateTime("2020 - 06 - 01 13:46:47.357");
newdate = datetimeItemValue.Subtract(dateoffset);
kv = new KeyValuePair<string, string>(dicitem.Key, newdate.ToString());
if (newdate != DateTime.MinValue)
kv = new KeyValuePair<string, string>(dicitem.Key, newdate.ToString());
kv = new KeyValuePair<string, string>(dicitem.Key, dicitem.Value);
string disctojason = JsonConvert.SerializeObject(kvlst);
var test = JsonConvert.SerializeObject(sb.ToString());