string month = DateTime.Now.Month.ToString();
string CommandText = "SELECT slocref.slocname, partstuff.quantity, partstuff.currency, partstuff.postingdate" + " FROM partstuff INNER JOIN slocref ON partstuff.sloc = slocref.slocvalue";
这是获取日期和月份的代码。
if (Regex.IsMatch(rdr["postingdate"].ToString(), "0" + month + "*"))
{
if (rdr["slocname"].ToString() == "Answer/Slatwall")
{
string quantity = rdr["quantity"].ToString();
string currency = rdr["currency"].ToString();
answertotalmonth += float.Parse(currency);
label100.Text = "$" + answertotalmonth.ToString("#,##0.00");
}
}
这只是if语句运行的代码示例。
但if语句需要获取所有7月的信息并将其添加。所以从2012年1月7日到2012年7月31日。我无法更改SQL,因为它会弄乱程序的其余部分。我试图获取当前日期,在它前面添加0,然后使用通配符。
在这个if语句上需要一点指示。
让我澄清一下这篇文章。 “postsdate”值来自FileHelpers。将固定宽度的文本文件导入这些值。 postdate值看起来像“07/16/12”
所以,我想获得当前月份,然后如果postdate值具有该月份的值,则运行if语句代码。
答案 0 :(得分:1)
你为什么要这样做?
if (Regex.IsMatch(rdr["postingdate"].ToString(), "0" + month + "*"))
如果rdr [" postdate"]应该是一个日期,请将其转换为日期时间并进行合理的比较。
if(DateTime.TryParse(rdr["postingdate"].ToString(), rdrDateTime))
{
// proceed as planned
if (rdrDate.Month == DateTime.Now.Month)
{
// and so on.
}
}
答案 1 :(得分:0)
我不确定我是否正确理解您的问题,但为什么不只是匹配DataTime的月份属性:
if( date.Month == month)
{
//your code...
}
同样如上所述,您可以将文本解析为日期。但是如果你只是对那些可能没有必要的月份感兴趣的话。
修改:如评论中所述,您还必须检查年份。因此,最好将其作为完整的DateTime对象进行削减。