将richtextbox(TimeSpan)的内容转换为Double或Float

时间:2017-07-17 17:18:09

标签: c# datetime double richtextbox timespan

我是新来的,我希望我在正确的地方。 谁能帮我 ? 我的程序中有3个richTextBox 第一个是(日期时间格式):日期开始 2sd是(日期时间格式):日期结束 第三个是(Timespan格式):剩余天数(从richTextBox1)到下一个日期(richTextBox2)。 我想要的是如果richTextBox3< = 0显示警告消息。 但我不知道如何将项目转换为双。 提前谢谢。

我的代码:

// Reading Text File 1.
TextReader dateOfStart = new StreamReader (TextFilePath);

richTextBox1.Text = dateOfStart.ReadToEnd();
dateOfStart.Close();

// Reading Text File 2.
TextReader dateOfEnd = new StreamReader (TextFilePath);

richTextBox2.Text = dateOfEnd.ReadToEnd();
dateOfEnd.Close();

// Convert to DateTime 1
DateTime dateStarting = DateTime.Parse(dateOfStart);

// Convert to DateTime 2
DateTime dateEnding = DateTime.Parse(dateOfEnd);

// Calc
TimeSpan remainningDays = dateEnding - dateStarting;

// if richTextBox3 <= Zero, launch Warninng.
If (remainningDays <= 0)
{
    MessageBox.Show (Warnning !!!!!);
}    

2 个答案:

答案 0 :(得分:1)

您可以做一些事情来完成这项工作。

首先,您不需要直接使用StreamReader个对象,您可以使用静态File.ReadAllText()方法将文件内容读入字符串变量。这将打开文件,读取文本,返回文件,然后为您关闭文件。

richTextBox1.Text = File.ReadAllText(startDateFilePath);
richTextBox2.Text = File.ReadAllText(endDateFilePath);

接下来,在设置DateTime变量时,您希望将字符串值传递给它,而不是StreamReader对象。由于我们已将字符串存储在RichTextBox个对象中,因此我们可以使用它们:

// Note that `Parse` will throw an exception if the text is not a valid date
// Use `TryParse` instead if this is a possibility, 
//     or use a `try/catch` block and catch the FormatException
DateTime dateStarting = DateTime.Parse(richTextBox1.Text);
DateTime dateEnding = DateTime.Parse(richTextBox2.Text);

然后,当您进行减法操作时,您可以访问TotalDays的{​​{1}}属性以获取所代表的天数,并将TimeSpan设置为该值:

richTextBox3.Text

答案 1 :(得分:-1)

double myDoubleValue = Double.Parse(richTextBox3.Text);

格式错误的数据会导致此方法抛出异常。由于您尝试解析直接用户输入,因此应将其包装在try-catch块中。或者,如果您担心性能,可以使用TryParse。 <{1}}方法不会抛出异常。