C# - 获取用户输入,转换输入的数据,然后将其输出到文本框中

时间:2010-09-20 04:29:40

标签: c# windows forms

我正在尝试编译我的第一个C#应用程序(基于Visual Studio)...也使用Windows窗体输入(来自用户)和输出。

用户将数字放入六个文本框(例如2009 20 02 02:49:35),然后单击“转换”按钮时,程序会在另一个文本框中输出E1234FB3278DC0。

不确定这是否相关,但是E1234FB3278DC0 = 63370694975000000(十进制)。

哦,我也不确定convertedText.writeline ......应该是this.textBox7 = microseconds; ?

       String dateString = yyyy.Text + dd.Text + mm.Text + hh.Text + mm.Text + ss.Text;
        DateTime timestamp = DateTime.ParseExact(dateString, "yyyy dd mm  hh:mm:ss", CultureInfo.CurrentCulture);
        long ticks = timestamp.Ticks;
        long microseconds = ticks / 10;
        convertedText.WriteLine(microseconds.ToString("X"));

提前致谢.. 我要感谢Luxspes的原始版本。

1 个答案:

答案 0 :(得分:1)

有关此代码段的一些提示。

    String dateString = yyyy.Text + dd.Text + mm.Text + hh.Text + mm.Text + ss.Text;
    DateTime timestamp = DateTime.ParseExact(dateString, "yyyy dd mm  hh:mm:ss", CultureInfo.CurrentCulture);

首先,你使用相同的“mm”对象几个月和几分钟真的很奇怪。格式说明符存在同样的问题。要解析月份,您应该使用“M”。

    long ticks = timestamp.Ticks;
    long microseconds = ticks / 10;
    convertedText.WriteLine(microseconds.ToString("X"));

因此,如果您的日期成功解析,您将获得自0001年1月1日午夜12点00分以来经过的微秒数。它是十六进制的E1234FB3278DC0(对于您问题中的日期)。  但在你的情况下,日期以秒表示。所以,微秒的数量总是如此。

    timestamp.Millisecond*1000;

我不知道convertedText对象的类型。但在我看来,这不是问题。

尝试使用以下代码:

String dateString = yyyy.Text+dd.Text+M.Text+hh.Text+mm.Text+ss.Text;
DateTime dateTime = DateTime.ParseExact(dateString, "yyyy dd M hh:mm:ss", CultureInfo.CurrentCulture);
long microseconds = dateTime.Ticks/10;
convertedText.Text = microseconds.ToString("X");