c# - 从 datetimepicker 计算两个日期之间的差异

标签 c# string visual-studio-2010 date date-arithmetic

<分区>

我想计算两个日期之间的差异,一个从 dateTimePicker1 中选取,另一个从 2014 年 2 月 20 日选取,并将其存储在一个字符串中以添加到我的数组中并能够以另一种形式显示它

这是我的代码:

    TimeSpan getDateDifference(DateTime date1, DateTime date2)
    {
        TimeSpan ts = date1 - date2;
        int differenceInDays = ts.Days;
        string differenceAsString = differenceInDays.ToString();
        return ts;

    }


    public class Patient
    {
        public string patientidString;
        public string firstNameString;
        public string lastNameString;
        public string dateString;
        public string differenceAsString;


        public Patient()
        {
            patientidString = "";
            firstNameString = "";
            lastNameString = "";
            dateString = "";
        }

    }


    //Array
    Patient[] patientInfo = new Patient[10];




    private void button1_Click(object sender, EventArgs e)
    {
        TimeSpan difference = getDateDifference(new DateTime(2014, 2, 20), dateTimePicker1.Value);
        if (textBox1.Text.Length == 0 || textBox2.Text.Length == 0 || textBox3.Text.Length == 0)
        {
            MessageBox.Show(" Patient id, first name and last name cannot be empty");
        }

        else
        try
        {
            foreach (Patient patientinfoIndex in patientInfo)

            patientInfo[itemCountInteger].patientidString = textBox1.Text;
            patientInfo[itemCountInteger].firstNameString = textBox2.Text;
            patientInfo[itemCountInteger].lastNameString = textBox3.Text;
            patientInfo[itemCountInteger].dateString = dateTimePicker1.Text;

            string names = patientInfo[itemCountInteger].patientidString + "  " + patientInfo[itemCountInteger].firstNameString + " " + patientInfo[itemCountInteger].lastNameString;
            listBox1.Items.Add(names);
            itemCountInteger++;
            listBox1.SelectedItem = names;
        }
        catch
        {
            MessageBox.Show("Contacts are limited to 20. Please delete some contacts prior to adding more.");
        }


    }


    //Search Button search a patients name and display his surname in the label if patient is found  display his surname
    private void button2_Click(object sender, EventArgs e)
    {

        int intTest = 0;

        for (int x = 0; x < patientInfo.Length; x++)
        {
            if (textBox4.Text == patientInfo[x].patientidString)
            {
                label6.Text = (patientInfo[x].firstNameString + "  " + patientInfo[x].lastNameString);
                PatientForm patientform = new PatientForm();
                patientform.Show();
                patientform.label6.Text = (patientInfo[x].patientidString);
                patientform.label7.Text = (patientInfo[x].firstNameString);
                patientform.label8.Text =(patientInfo[x].lastNameString);
                patientform.dateTimePicker1.Text = (patientInfo[x].dateString);

patientform.label9.Text = (patientInfo[x].differenceAsString);

                intTest = 1;
                break;
            }

        }

        if (intTest == 0)
        {
            label6.Text = ("not found");
        }
    }

最佳答案

DateTime febDate = new DateTime(2014, 2, 20);
DateTime pickerDate = myDateTimePicker.Value;

TimeSpan tspan = febDate - pickerDate;

int differenceInDays = tspan.Days;

string differenceAsString = differenceInDays.ToString();

如果differenceInDays < 0然后乘以-1。

注意:在这种情况下,也很容易获得小时、分钟或秒的差异。

下面是上面代码在它自己的方法中的一个例子:

TimeSpan getDateDifference(DateTime date1, DateTime date2)
{
    TimeSpan ts = date1 - date2;

    return ts;
}

当你想触发这个方法时:

TimeSpan difference = getDateDifference(new DateTime(2014, 2, 20), dateTimePicker.Value);

//Now you can do what you want with the TimeSpan.

int differenceInDays = difference.Days;
int differenceInHours = difference.Hours; 

Console.WriteLine(differenceInDays.ToString());

关于c# - 从 datetimepicker 计算两个日期之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22540855/

相关文章:

ios - 获取字符串显示的可选

在 C 中动态创建文件名

c# - C# 中是否有内置的月份名称变格

c# - 将 .NET Dictionary<string, string> 序列化为 JSON 键值对对象

java - 在java中解析引用的文本

c# - COM异常 : 80040154

.net - 如何使用 InvokeMethod 事件将字符串添加到使用 Workflow Foundation 4 的通用列表

c++ - visual studio c++ 2010 express 使用 gdi 时出错

c# - c#中调用泛型方法时的速记

c# - 连接到 SQL Server 数据库 C#-WinForms