Понедельник, 26 января 2002г.
13:20 перечача
14:00 передача
Вторник, 27 января 2002г.
....
Это все парсится, регекспом я выдираю дату и время каждой передачи.
Алгоритм такой: как только регексп совпал со строчкой даты, заносим ее в DateTime:
DateTime date = new DateTime(iYear, iMonth, iDay);
Читаем файл дальше, пришло совпадение со вторым регекспом (на ловлю времени и имени программы). И это выдранное время нужно занести в ранее созданный объект DateTime. Потом эти дата/время обрабатываются и заносятся куда нужно. Далее ловится вторая программа, дату в объекте нужно оставить прежней, а время сменить и снова обработать. И т.д.
Другими словами — как изменить в созданном объете DateTime время?
Здравствуйте, САС, Вы писали:
САС>Читаем файл дальше, пришло совпадение со вторым регекспом (на ловлю времени и имени программы). И это выдранное время нужно занести в ранее созданный объект DateTime. Потом эти дата/время обрабатываются и заносятся куда нужно. Далее ловится вторая программа, дату в объекте нужно оставить прежней, а время сменить и снова обработать. И т.д. САС>Другими словами — как изменить в созданном объете DateTime время?
А почему нельзя воспользоваться свойствами:
Minute
Second
Hour
Здравствуйте, Blazkowicz, Вы писали:
B>А AddХхх может привести к багам, если в DateTime кроме даты уже было какое-то время.
Дык нужно старое вычитать. Хотя тогда уже создать новую дату будет проще. Вообще если нужно рассчеты с датами производить, то рпоще перевести ее в doubl.
А как такое решение с точки зрения выделения памяти? Или сборщик мусора все это обработает корректно? Просто этот блок будет выполняться в цикле, а количество итераций совсем не детское В C++ можно было освобождать пямять вручную, и не могу отвыкнуть от этой схемы.
Здравствуйте, VladD2, Вы писали:
B>>А AddХхх может привести к багам, если в DateTime кроме даты уже было какое-то время.
VD>Дык нужно старое вычитать. Хотя тогда уже создать новую дату будет проще. Вообще если нужно рассчеты с датами производить, то рпоще перевести ее в doubl.
А алгоритм перевода не подскажешь? Или в .net для этого уже все реализовано? Куда смотреть?
Здравствуйте, САС, Вы писали:
САС>А как такое решение с точки зрения выделения памяти? Или сборщик мусора все это обработает корректно? Просто этот блок будет выполняться в цикле, а количество итераций совсем не детское В C++ можно было освобождать пямять вручную, и не могу отвыкнуть от этой схемы.
Хм, чисто теоретически сборщик должен все собрать. Хотя на практике он кажется никому ничего не должен.
САС>А как такое решение с точки зрения выделения памяти? Или сборщик мусора все это обработает корректно? Просто этот блок будет выполняться в цикле, а количество итераций совсем не детское В C++ можно было освобождать пямять вручную, и не могу отвыкнуть от этой схемы.
DateTime — выделяется в стеке а не на куче потому что это struct (value type). Если не веришь попробуй присвоить ему null: DateTime dt=null;
В C++ можно было освобождать пямять вручную, и не могу отвыкнуть от этой схемы.
SS>DateTime — выделяется в стеке а не на куче потому что это struct (value type). Если не веришь попробуй присвоить ему null: DateTime dt=null;
Наверное не можешь отвыкнуть что new должен создавать объект на куче.
В C# для value типов это просто вызов конструктора.
Эти две строчки эквивалентны:
int i=new int();
int i;