DateTime x = new DateTime(); DateTime y = new DateTime(); x = DateTime.Now;//当前时间 y = x;x = Convert.ToDateTime((DateTime.Now.ToString("yyyy-MM-01")).AddMOnths(-1).ToShortDateString());//上月1号0:00:00秒//上月最后一天的最后一刻 y = Convert.ToDateTime((DateTime.Now.ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString()); y = Convert.ToDateTime(y.ToString("yyyy-MM-d")+ " 23:59:59"); //此时,你可以查询上月的数据了: select * from dt where rq>=x and rq<=y... 如果是dateTimePicker转换成yyyy-mm-dd格式
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
<!--
/*日期验证*/
function showBirty() {
//获得日期的值
var birty = document.inputForm.birty.value;
var advBirty = document.getElementById("advBirty");
advBirty.innerHTML = "";
//日期不能为空
if ("" == birty) {
advBirty.innerHTML = "<font size='2' color='red'>日期不能为空</font>";
return false;
}
//日期的格式必须为yyyy-mm-dd
if (birty.substring(4,5) != "-" || birty.substring(7,8) != "-") {
advBirty.innerHTML = "<font size='2' color='red'>日期的格式必须为yyyy/mm/dd</font>";
return false;
}
//日期的长度必须为10位
if (birty.length != 10) {
advBirty.innerHTML = "<font size='2' color='red'>日期的长度必须为10位</font>";
return false;
}
//日期以/符合分割
var splitBirty = birty.split("-");
if (isNaN(splitBirty[0]) || isNaN(splitBirty[1]) ||
isNaN(splitBirty[2])) {
advBirty.innerHTML = "<font size='2' color='red'>日期必须都为数字</font>";
return false;
}
//取得当前年
var today = new Date();
var year = today.getYear();
//年必须在1949至当前年之间
if (splitBirty[0] < 1949 || splitBirty[0] > year) {
advBirty.innerHTML = "<font size='2' color='red'>年必须在1949至" +year+ "年之间</font>";
return false;
} //月必须在1-12之间
if (splitBirty[1] < 1 || splitBirty[1] > 12) {
advBirty.innerHTML = "<font size='2' color='red'>月必须在1-12之间</font>";
return false;
} //如果月是1、3、5、7、8、10、12,那么日必须在1-31天之间
if ((splitBirty[1] == 1 || splitBirty[1] == 3 ||
splitBirty[1] == 5 || splitBirty[1] == 7 ||
splitBirty[1] == 8 || splitBirty[1] ==10 ||
splitBirty[1] == 12) && (splitBirty[2] < 1 || splitBirty[2] > 31)) {
advBirty.innerHTML = "<font size='2' color='red'>日必须在1-31天之间</font>";
return false;
} //如果月是4、6、9、11,那么日必须在1-30天之间
if ((splitBirty[1] == 4 || splitBirty[1] == 6 ||
splitBirty[1] == 9 || splitBirty[1] == 11 ) &&
(splitBirty[2] < 1 || splitBirty[2] > 30)) {
advBirty.innerHTML = "<font size='2' color='red'>日必须在1-30天之间</font>";
return false;
}
//如果是闰年,那么二月份在1-29天之间
if (((splitBirty[0] % 4 == 0 && splitBirty[0] % 100 != 0) ||
splitBirty[0] % 400 == 0) && splitBirty[1] == 2 &&
(splitBirty[2] < 1 || splitBirty[2] > 29)) {
advBirty.innerHTML = "<font size='2' color='red'>日必须在1-29天之间</font>";
return false;
} //如果是平年,那么二月份在1-28天之间
if (!((splitBirty[0] % 4 == 0 && splitBirty[0] % 100 != 0) ||
splitBirty[0] % 400 == 0) && splitBirty[1] == 2 &&
(splitBirty[2] < 1 || splitBirty[2] > 29)) {
advBirty.innerHTML = "<font size='2' color='red'>日必须在1-28天之间</font>";
return false;
}
return true;
}
//-->
</SCRIPT>
</HEAD><BODY>
<form action="Noname2.html" method="post" name="inputForm" onSubmit="return showBirty()">
日期:<input type="text" name="birty" onBlur="showBirty()"><div id="advBirty" style="display:inline;"></div><br>
<input type="submit" value="提交">
</form>
</BODY>
</HTML>
如果是web你可以参考,
如果是vs桌面,在vs控件中有个日期控件dateTimePicker,不需要判断!
DateTime x = new DateTime();
DateTime y = new DateTime();
x = DateTime.Now;//当前时间
y = x;x = Convert.ToDateTime((DateTime.Now.ToString("yyyy-MM-01")).AddMOnths(-1).ToShortDateString());//上月1号0:00:00秒//上月最后一天的最后一刻
y = Convert.ToDateTime((DateTime.Now.ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString());
y = Convert.ToDateTime(y.ToString("yyyy-MM-d")+ " 23:59:59");
//此时,你可以查询上月的数据了:
select * from dt where rq>=x and rq<=y...
如果是dateTimePicker转换成yyyy-mm-dd格式
http://topic.csdn.net/u/20090720/08/deed1769-263e-4b47-8275-9e0931d124c4.html
写错了,不好意思 @"^\d{4}\-\d{2}\-\d{2}$"
{
try
{
dateValue= DateTime.ParseExact(value,"yyyy-M-d",null);
return true;
}
catch
{
try
{
dateValue = DateTime.ParseExact(value, "yyyyMMdd", null);
return true;
}
catch
{
try
{
dateValue = DateTime.ParseExact(value, "yyyy年M月d日", null);
return true;
}
catch
{
dateValue = DateTime.MinValue;
return false;
}
}
}
}调用方法: DateTime d;
if (MyValidate.IsDate("20080808",out d))
MessageBox.Show(d.ToShortDateString());