Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2013, 17:42   #1
Linore
Пользователь
 
Регистрация: 18.01.2010
Сообщений: 95
По умолчанию Как в С# правильно перевести date и time из excel

Добрый день,
Помогите пожалуйста есть в excel записанная дата 05.11.2010 и время 17:14:06
типа в date and time ,
С# считывает их естественно цифрами, как мне с точностью до секунды привести их в С# к виду в excel.
Я делаю вот так
int hour;
int min;
int sec;
hour = Convert.ToInt16(Math.Round(Time[k] / 0.04167, 0, 0));
min = Convert.ToInt16(Math.Round(((Time[k] - (Convert.ToDouble(hour) * 0.04167))) / 0.0006945, 0, 0));
sec = Convert.ToInt16(Math.Round(((Time[k] - (Convert.ToDouble(hour) * 0.04167) - (Convert.ToDouble(min) * 0.0006945))) / 0.00001, 1, 0));

но он беспощадно врет(
Linore вне форума Ответить с цитированием
Старый 17.01.2013, 17:56   #2
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

http://msdn.microsoft.com/en-us/library/8tfzyc64.aspx
Можно передавать разные строки форматирования
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 18.01.2013, 11:04   #3
Linore
Пользователь
 
Регистрация: 18.01.2010
Сообщений: 95
По умолчанию

я все равно не понимаю, он же excel ,берет именно число например 0,718148148, которое на самом деле в excel выглядит как 17:14:08, мне надо чтобы в C# ,именно точное время вплоть до секунды, а что делает DateTime?
Linore вне форума Ответить с цитированием
Старый 18.01.2013, 19:45   #4
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Ну тут уж вам нужно искать конкретно документацию по тому, как excel конвертирует строки (и скорее всего её вообще не существует в открытом доступе). Как вы можете пытаться преобразовать строку, не зная правила преобразования?)
если совсем приспичило, то на ум приходит идея из разряда "из пушки по воробьям": используете Microsoft.Office.Interop.Excel (или как-то так, не помню точно), программно запускаете excel в скрытом режиме, задаете формат ячейки, задаете значение ячейки (после чего оно автоматически преобразуется), вытягиваете значение ячейки. Но это очень ресурсоёмко и долго. И вообще костыль)
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как перевести с программы Excel в Word выдаёт ошибку Run-time error '9105' vbn14 Microsoft Office Excel 2 21.02.2012 21:01
Как правильно перевести книгу с макросом из 2007 в 2003 Excel? Алекс7 Microsoft Office Excel 5 15.10.2011 09:21
Как перевести integer в Date demiancz Общие вопросы Delphi 11 17.02.2011 23:08
Запись даты в Paradox - поля date time xKLONx БД в Delphi 6 17.08.2010 17:40
Исчезает Date and Time Picker! Klim Bassenger Microsoft Office Excel 17 24.11.2009 18:25