我有无法解决的问题。我正在尝试加分钟和减分钟。基本上在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)))
// ...