DateTime dt1 = Convert.ToDateTime("2003-5-15");
DateTime dt2 = Convert.ToDateTime("2003-7-31");
TimeSpan sp = dt2.Subtract(dt1);
int iDay = sp.Days;
string str1 = iDay + "天";
string str2 = (iDay / 30) + "月" + (iDay % 30) + "天";

解决方案 »

  1.   

    DateTime t1 = new DateTime(2002,5,30);
    DateTime t2 = new DateTime(2002,5,23);
    TimeSpan diff=t1-t2;
    int iDay=diff.Days;
    string str1 = iDay + "天";
    string str2 = (iDay / 30) + "月" + (iDay % 30) + "天";
      

  2.   

    是用SQL200吗
    如果是SQL的时间函数中有求datetime差的函数。不记名字了,查一下sql的帮助
      

  3.   

    我提供你一些代码。你试试
    using System;namespace DateTime001
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    public class Datetime1
    {
    private static int[] notleapmonthday={31,28,31,30,31,30,31,31,30,31,30,31};
    private static int[] leapmonthday={31,29,31,30,31,30,31,31,30,31,30,31};
    private int year,month,day;

    public Datetime1()
    {
    setDate(2000,1,1);
    }

    public Datetime1(int y,int m,int d)
    {
    setDate(y,m,d);
    }

    public void setDate(int y,int m,int d)
    {
    year=y;
    month=m;
    day=d;
    }
    private int  getYear()
    {
    return year;
    }
    private int getMonth()
    {
    return month;
    }
    private int getDay()
    {
    return day;
    }

    private static bool leapyear(int y)
    {
    if (y%4==0&&y%100!=0||y%400==0)
    return true;
    else
    return false;

    }

    public static int getdayofmonth(int y,int m)
    {
    int year=y;
    if (leapyear(year))
    {
    return leapmonthday[m-1];
    }
    else
    {
    return notleapmonthday[m-1];
    }
    }

    public static int getdaynum(Datetime1 d)
    {
    int num=0;
    for (int i=d.getYear()-1;i>=1900;i--)
    if (leapyear(i))
    num+=366;
    else
    num+=365;

    for (int i=d.getMonth()-1;i>=1;i--)
    {
    num+=getdayofmonth(d.getYear(),i);
    }
    num+=d.getDay();
    return num;
    }
    //计算某年某月的天数
    public static int getDayNum(int y,int m)
    {
    int[] leap={31,29,31,30,31,30,31,31,30,31,30,31};
    int[] notleap={31,28,31,30,31,30,31,31,30,31,30,31};
    if (y%4==0&&y%100!=0||y%400==0)
    return leap[m];
    else
    return notleap[m];
    }


    public static int DateMinus(Datetime1 dt1,Datetime1 dt2)
    {
    int num1=getdaynum(dt1);
    int num2=getdaynum(dt2);
    return (num2-num1);
    }
    }
    }
    以上这是类摸块的
    下面是如何在Form中调用(你应该能看懂)
    private void Form1_Load(object sender, System.EventArgs e)
    {
    this.txtnow.Text=date.ToShortDateString(); // this.txtnowdate.Text=date.ToShortDateString();
    // this.txtyear.Text=date.Year.ToString();
    // this.txtmonth.Text=date.Month.ToString();
    // this.txtday.Text=date.Day.ToString();
    } private void btnok_Click(object sender, System.EventArgs e)
    {
    if(this.txtoldtime.Text!="")
    {
    int i;
    int days;
    int year,month,day;
    int yearold,monthold,dayold;
    DateTime dateold=Convert.ToDateTime(this.txtoldtime.Text);
    yearold=Convert.ToInt32(dateold.Year);
    monthold=Convert.ToInt32(dateold.Month);
    dayold=Convert.ToInt32(dateold.Day);
    year=Convert.ToInt32(date.Year);
    month=Convert.ToInt32(date.Month);
    day=Convert.ToInt32(date.Day);
    DateTime001.Datetime1 dtnow=new DateTime001.Datetime1(year,month,day);
    DateTime001.Datetime1 dtold=new DateTime001.Datetime1(yearold,monthold,dayold);
    days=Convert.ToInt32(DateTime001.Datetime1.DateMinus(dtold,dtnow));
    this.txtcha.Text=days.ToString();
    }
    else
    {
    MessageBox.Show("未输入日期","!!!!",MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
            
    }
    }
    }
    }