我有几行数据在一个time.txt里面2009-6-12 16:40:04.546
2009-6-12 16:40:04.687
2009-6-12 16:40:04.765
2009-6-12 16:40:04.890
2009-6-12 16:40:04.984我想把time.txt做一个变换
第一个时间置0,其他的我用后一个减第二个差值代替比如
0
141
78
125
94我就需要这样的效果该怎么做,差值应该不会大于毫秒吧,我在txt里面存储的是字符串

解决方案 »

  1.   

    要写回原来的time.txt的,用差值结果
      

  2.   

     string[] _Text = System.IO.File.ReadAllLines(@"C:\1.txt");            DateTime _StarTime;
                DateTime _EndTime;
                if (DateTime.TryParse(_Text[0], out _StarTime))
                {
                    IList<int> _Value = new List<int>();
                    
                    for (int i = 0; i != _Text.Length; i++)
                    {
                        if(_Text[i].Trim().Length==0)continue;                    if (!DateTime.TryParse(_Text[i], out _EndTime)) throw new Exception("错误时间" + _Text[i]);                    TimeSpan _Time = _EndTime - _StarTime;
                        _Value.Add((int)_Time.TotalMilliseconds);
                        _StarTime = _EndTime;
                    }
                }
    这样?
      

  3.   

            string[] t = File.ReadAllLines("time.txt");
            if (t == null || t.Length == 0)
                throw new Exception("无数据");
            //假设你的时间都是合法格式,不做额外检查
            DateTime d = DateTime.Parse(t[0]);
            for (int i = 0; i < t.Length; i++)
            {
                DateTime d1 = DateTime.Parse(t[1]);
                t[i] = ((TimeSpan)(d1 - d)).TotalMilliseconds.ToString();
                d = d1;
            }
            File.Delete("time.txt");
            File.WriteAllLines("time.txt", t);
      

  4.   


    报错:String was not recognized as a valid DateTime.
      

  5.   

     DateTime.Parse(t[0]);你知道吗?你这样做,我的毫秒就没了
      

  6.   


    你知道吗?我这样做 DateTime.Parse("2009-6-12 16:40:04.546").Millisecond=546,谢谢!
      

  7.   

    VS2005/C#里执行DateTime.Parse("2009-6-12 16:40:04.546").Millisecond输出546
    试验后再回你的