在 C# 中将分钟添加到日期时间时无法解析符号?



我有无法解决的问题。我正在尝试加分钟和减分钟。基本上在30分钟的区块范围内。但是,在下面的代码中,我正在尝试获取我的键值并添加 30 分钟,但由于某种原因AddMinutes给出了错误:

无法解析符号添加分钟。

这是我的代码:

var results = JsonConvert.DeserializeObject<dynamic>(barCodeValue);
var gettingTheName = (string) results.Evaluation.Value;
TextHeader.text = gettingTheName;
var qrCodeString = $"https://**************.firebaseio.com/Evaluations/.json?orderBy="$key"&startAt="{gettingTheName}"&limitToFirst=1";
var matchingsLink = new WebClient().DownloadString(qrCodeString);
var objs = JObject.Parse(matchingsLink);
var someId = objs.First.First["Active"].ToString();
var data = objs[gettingTheName];
try
{
if (!((bool)data["Active"] == false && (bool)data["Completed"] &&    
DateTime.Now < data["ScheduleStartTime"].AddMinutes(30) &&
DateTime.Now > data["ScheduleStartTime"].AddMinutes(-30)))  

您正在对JToken类型对象使用AddMinutes()方法。AddMinutes 仅适用于 DateTime。

DateTime.Parse("dateInStringFormat")会将字符串解析为 DateTime 格式.. 然后您可以将分钟添加到其中。

DateTime.Now < DateTime.Parse(data["ScheduleStartTime"].ToString()).AddMinutes(30) &&
DateTime.Now > DateTime.Parse(data["ScheduleStartTime"].StoString()).AddMinutes(-30))) 

这可能是因为data["ScheduleStartTime"]不是DateTime的实例,因为JSON没有内置的日期或时间表示。最有可能的是data["ScheduleStartTime"]ISO 8601 日期表示为字符串,在这种情况下,您应该在将其与DateTime.Now进行比较之前对其进行解析:

// ...
var scheduleStartTime = DateTime.Parse(data["ScheduleStartTime"].ToString());
if (!((bool)data["Active"] == false && (bool)data["Completed"] &&    
DateTime.Now < scheduleStartTime.AddMinutes(30) &&
DateTime.Now > scheduleStartTime.AddMinutes(-30)))
// ...

最新更新