【问题标题】:String Array to Int the If else Statement C# [duplicate]将字符串数组转换为 If else 语句 C# [重复]
【发布时间】:2019-12-19 05:31:07
【问题描述】:

你能帮帮我吗?我的代码有问题。我有字符串数组,我想在 int 中转换然后应用 if else 条件。

军事时间

string[] FlaggingTime = ((Hashtable)ConfigurationSettings.GetConfig("Time"))["FlaggingTime"].ToString().Trim().Split(new char[] { ',' });
string FlaggingTimeBuffer = ((Hashtable)ConfigurationSettings.GetConfig("Time"))["FlaggingTimeBuffer"].ToString();

if (Convert.ToInt32(DateTime.Now.ToString("HHmm")) > Convert.ToInt32(FlaggingTime) && Convert.ToInt32(DateTime.Now.ToString("HHmm")) < (Convert.ToInt32(FlaggingTime) + Convert.ToInt32(FlaggingTimeBuffer)) )
{
    //Do Something
}
else
{
    //Do Something
}            

可配置文件

<Time>
    <add key="FlaggingTime" value="0700,0900"/>
    <add key="FlaggingTimeBuffer" value="100"/>
</Time>

【问题讨论】:

  • 此链接会有所帮助:stackoverflow.com/questions/1297231/…
  • 请澄清更多。编辑您的问题。 buffer 是否以秒为单位?时间是 12 小时制还是 24 小时制?
  • 什么是0700?是7Hr 0Min吗?
  • @iMemew,FlaggingTime 是一个数组,因此您可能希望使用 forloop 并将您的 If 条件与它放在一起,然后进行比较。 Ex Convert.ToInt32(DateTime.Now.ToString("HHmm")) >Convert.ToInt32(FlaggingTime[0])

标签: c# winforms


【解决方案1】:

假设FlaggingTimeBuffer 以秒为单位,这是否满足您的需求?

string[] time ={
    "0700",
    "0900"
};
string buffer = "100";

TimeSpan timeOfDay = DateTime.Now.TimeOfDay;
var FlaggingTimes = time.Select(e => TimeSpan.ParseExact(e, "hhmm", CultureInfo.InvariantCulture)).ToList();

if (timeOfDay > FlaggingTimes[0] && timeOfDay < FlaggingTimes[1].Add(new TimeSpan(0, Convert.ToInt16(buffer), 0)))
{
    //  ............
}
else
{
    //  ............
}

【讨论】:

    猜你喜欢
    • 2016-05-15
    • 1970-01-01
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    相关资源
    最近更新 更多