如何比较两个日期 [英] How to compare two dates
问题描述
地狱先生,
我想比较两个日期.我正在从comobobox(cboDate,cboMonth,cboYear)中选择日期.并将其保存到gridview中.保存之前,我正在gridview中将此日期检查为以前的保存日期.
意味着我正在比较两个日期,其中一个日期在gridview中,另一个日期在组合框中(cboDate,cboMonth,cboYear).但是我在比较日期时遇到错误.我正在使用DateTime.Compare方法.
当我从组合框获取日期时,仅从日期中获取日期,而从gridview获取日期和时间.
Hell Sir,
I want to compare two date. I am picking date from comobobox (cboDate, cboMonth, cboYear). and save it into gridview. before save i am checking this date to previous save date in gridview.
Means I am comparing two date in which one is in gridview and another one in combobox (cboDate, cboMonth, cboYear). but i am getting error for comparing dates. i am using DateTime.Compare method.
When i am taking date from combobox its only take date but from gridview its taking date and time.
string doj = Convert.ToString(cboFromdate.SelectedItem.Text) + Convert.ToString(cboFromMonth.SelectedItem.Value) + Convert.ToString(cboFromYear.SelectedItem.Text);
DataTable dtTemp = new DataTable();
dtTemp = (DataTable)Session["PreEmploymentDetail"];
if (dtTemp != null)
{
for (int i = 0; i <= dtTemp.Rows.Count - 1; i++)
{
int result = DateTime.Compare(Convert.ToDateTime(doj), Convert.ToDateTime(dtTemp.Rows[i] ["ToDate"]));
if(result < 0)
{
}
请任何人帮我....
谢谢
Please any one help me....
Thanks
推荐答案
尝试以下方法:
Try following way:
//your date from comobobox, i.e. cboMonth + cboDate + cboYear
DateTime d1 = ....
//your date from gridview
DateTime d2 = Convert.ToDateTime(GridView.rows(0).cells(1).text.ToString().Trim()).Date;
if (d1 >= d2)
{
MessageBox.Show("dt1 >= dt2");
}
else
{
MessageBox.Show("dt1 < dt2");
}
您可以在此处阅读有关DateTime.Compare方法的信息,并查看其他示例:
http://msdn.microsoft.com/en-us/library/system.datetime. compare.aspx [^ ]
You can read here about DateTime.Compare Method and see other example:
http://msdn.microsoft.com/en-us/library/system.datetime.compare.aspx[^]
使用Convert.ToDateTime
函数将组合框字符串转换为DateTime.
请参考以下链接:
MSDN:Convert.ToDateTime方法 [ MSDN:Convert.ToDateTime方法(字符串,IFormatProvider) [ MSDN:Convert.ToDateTime方法(字符串) [
UseConvert.ToDateTime
function to convert the combobox string to DateTime.
Refer the links below:
MSDN : Convert.ToDateTime Method [^]
MSDN : Convert.ToDateTime Method (String, IFormatProvider)[^]
MSDN : Convert.ToDateTime Method (String)[^]
--Amit
您必须将两个日期转换为垂直格式,例如"MM/dd/yyyy"
或"dd/MM/yyyy",然后应用逻辑比较格式相同的日期
表示您应该按照以下步骤进行操作
1将两个日期转换为相同的日期格式,您可以使用
进行转换 ToString(您的日期格式")
2如果要使用DateTime.Compare(),则将两个日期都转换为DateTime.
You have to convert both date in perticular format like "MM/dd/yyyy"
or "dd/MM/yyyy" then apply your logic to compare date which are in same format
means you should do folowing steps
1 convert both date in same date format you can convert this using
ToString("your date format")
2 if you want use DateTime.Compare() then convert both date in DateTime.
//Correct this
//Convert This date to "MM/dd/yyyy" format
string doj = Convert.ToString(cboFromMonth.SelectedItem.Value) + Convert.ToString(cboFromdate.SelectedItem.Text)
+ Convert.ToString(cboFromYear.SelectedItem.Text);
//Add This
DateTime cmb_date=Convert.ToDateTime(doj)
DataTable dtTemp = new DataTable();
dtTemp = (DataTable)Session["PreEmploymentDetail"];
if (dtTemp != null)
{
for (int i = 0; i <= dtTemp.Rows.Count - 1; i++)
{
//Correct this
//Convert gridview date to "MM/dd/yyyy" format then compare both date
int result = DateTime.Compare(Convert.ToDateTime(doj), Convert.ToDateTime(dtTemp.Rows[i] ["ToDate"]));
if(result < 0)
{
}
这篇关于如何比较两个日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!