С# код для высчитывания количества дней.

andropovleva

Client
Регистрация
23.11.2019
Сообщения
581
Благодарностей
45
Баллы
28
Всем привет! Подскажите пожалуйста с# код который высчитывал количество дней сравнивая две даты 2020-10-16 2-06-39--325 такого формата.

Пример дата 1 2020-10-16 2-06-39--325 - дата2 2020-10-14 2-06-39--325 ( что бы брало текущее дату и время)- код должен ответить = 2 дня. Желательно что бы время тоже учитывалось.

То есть код должен автоматически посмотреть текущее число и дату сравнить с датой 2 из переменной, и вывести в переменную число дней разницы.
 
Последнее редактирование:

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
745
Баллы
113
+ Тоже такой код нужен.
Но я как мог прикрутил, у меня парсер видео, в таблице время, когда он должен парсить, чтоб весь день не парсил. Придумал так,
время в таблице пишу так 18_10_2020_14_57 - это дата один, когда начинать парсить, убираю эти черточки 18_10_2020_14_57 и js минус с 1 даты - 2 дата и как получаю минуты, как остается час, парсер начинает парсить. Криво но что смог придумать.
1603037638652.png
 
  • Спасибо
Реакции: andropovleva

andropovleva

Client
Регистрация
23.11.2019
Сообщения
581
Благодарностей
45
Баллы
28
+ Тоже такой код нужен.
Но я как мог прикрутил, у меня парсер видео, в таблице время, когда он должен парсить, чтоб весь день не парсил. Придумал так,
время в таблице пишу так 18_10_2020_14_57 - это дата один, когда начинать парсить, убираю эти черточки 18_10_2020_14_57 и js минус с 1 даты - 2 дата и как получаю минуты, как остается час, парсер начинает парсить. Криво но что смог придумать.
Посмотреть вложение 65598
Не совсем понял, но ход мысли уловил, так и думал изначально. Может что ещё подскажут.
 

Bas

Client
Регистрация
15.12.2013
Сообщения
637
Благодарностей
263
Баллы
63
Всем привет! Подскажите пожалуйста с# код который высчитывал количество дней сравнивая две даты 2020-10-16 2-06-39--325 такого формата.

Пример дата 1 2020-10-16 2-06-39--325 - дата2 2020-10-14 2-06-39--325 ( что бы брало текущее дату и время)- код должен ответить = 2 дня. Желательно что бы время тоже учитывалось.

То есть код должен автоматически посмотреть текущее число и дату сравнить с датой 2 из переменной, и вывести в переменную число дней разницы.
C#:
DateTime date1 = DateTime.ParseExact("2020-10-16 2-06-39--325", "yyyy-MM-dd H-mm-ss--fff", CultureInfo.InvariantCulture);
DateTime date2 = DateTime.ParseExact("2020-10-14 2-06-39--325", "yyyy-MM-dd H-mm-ss--fff", CultureInfo.InvariantCulture);

int days = (date1 - date2).Days;
return days;
 
  • Спасибо
Реакции: andropovleva и Roman48

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
745
Баллы
113
Но у меня чтобы весь день не чекал сайты парсер, каждый день буду писать время, постер заглядывает только в таблицу, как время подошло, он начинает работает
 

andropovleva

Client
Регистрация
23.11.2019
Сообщения
581
Благодарностей
45
Баллы
28
C#:
DateTime date1 = DateTime.ParseExact("2020-10-16 2-06-39--325", "yyyy-MM-dd H-mm-ss--fff", CultureInfo.InvariantCulture);
DateTime date2 = DateTime.ParseExact("2020-10-14 2-06-39--325", "yyyy-MM-dd H-mm-ss--fff", CultureInfo.InvariantCulture);

int days = (date1 - date2).Days;
return days;
Почему то не работает(
Создал переменные date1 и date2 подставил даты.
 

Вложения

Bas

Client
Регистрация
15.12.2013
Сообщения
637
Благодарностей
263
Баллы
63
  • Спасибо
Реакции: andropovleva

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
745
Баллы
113
C#:
DateTime date1 = DateTime.ParseExact("2020-10-16 2-06-39--325", "yyyy-MM-dd H-mm-ss--fff", CultureInfo.InvariantCulture);
DateTime date2 = DateTime.ParseExact("2020-10-14 2-06-39--325", "yyyy-MM-dd H-mm-ss--fff", CultureInfo.InvariantCulture);

int days = (date1 - date2).Days;
return days;
Можете, пожалуйста, подсказать, как его применить, для меня?
В коде не понимаю, ошибка.
18_10_2020_23_32 - 18_10_2020_22_32 = ?
и
19_10_2020_23_32 - 18_10_2020_22_32 = ?
У меня 3 переменных дата из ексель - data дата сейчас data_1 в компе = data_3
 

andropovleva

Client
Регистрация
23.11.2019
Сообщения
581
Благодарностей
45
Баллы
28
Всё заработало, с вашими цифрами показывало всё правильно, сейчас ошибка, как свои переменные подставить правильно?
 

Вложения

andropovleva

Client
Регистрация
23.11.2019
Сообщения
581
Благодарностей
45
Баллы
28
нашел ошибку,

DateTime date1 = DateTime.ParseExact(project.Variables["date1"].Value, "yyyy-MM-dd H-mm-ss--fff", CultureInfo.InvariantCulture);
DateTime date2 = DateTime.ParseExact(project.Variables["date2"].Value, "yyyy-MM-dd H-mm-ss--fff", CultureInfo.InvariantCulture);

int days = (date1 - date2).Days;
return days;

так должно быть!

ОГРОМНОЕ СПАСИБО!!!!!!!!!!!!
 

Bas

Client
Регистрация
15.12.2013
Сообщения
637
Благодарностей
263
Баллы
63
Можете, пожалуйста, подсказать, как его применить, для меня?
В коде не понимаю, ошибка.
18_10_2020_23_32 - 18_10_2020_22_32 = ?
и
19_10_2020_23_32 - 18_10_2020_22_32 = ?
У меня 3 переменных дата из ексель - data дата сейчас data_1 в компе = data_3
65602

C#:
DateTime date1 = DateTime.ParseExact("19_10_2020_23_32", "dd_MM_yyyy_H_mm", CultureInfo.InvariantCulture);
DateTime date2 = DateTime.ParseExact("18_10_2020_22_32", "dd_MM_yyyy_H_mm", CultureInfo.InvariantCulture);

int days = (date1 - date2).Days;
return days;
 

Bas

Client
Регистрация
15.12.2013
Сообщения
637
Благодарностей
263
Баллы
63
C#:
DateTime date1 = DateTime.Now; //текущая дата и время
DateTime date2 = DateTime.ParseExact("16_10_2020_22_32", "dd_MM_yyyy_H_mm", CultureInfo.InvariantCulture); //дата и время из экселя. Хотя бредовый формат для хранения, если честно ☺

int days = (date1 - date2).Days;
return days;
 
  • Спасибо
Реакции: Roman48

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
745
Баллы
113

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113

andropovleva

Client
Регистрация
23.11.2019
Сообщения
581
Благодарностей
45
Баллы
28
Что не так? Date 1 положил значение с помощью установить значение переменной и добавил {-TimeNow.TimeNow-}
 

Вложения

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
745
Баллы
113
Не получется в ексель у меня такая дата, пробовал библиотеку подключить EPPlus, вроде по инструкции подключил, но после даты нули идут. Решил проблему _ нижними чёрточками
65605

Сегодня, уже с 8 утра варианты пробую, мозги кипят, завтра продолжу, если что, буду помощи просить.
1603040145910.png
 

Bas

Client
Регистрация
15.12.2013
Сообщения
637
Благодарностей
263
Баллы
63
Не получется в ексель у меня такая дата, пробовал библиотеку подключить EPPlus, вроде по инструкции подключил, но после даты нули идут. Решил проблему _ нижними чёрточками
Посмотреть вложение 65605
Сегодня, уже с 8 утра варианты пробую, мозги кипят, завтра продолжу, если что, буду помощи просить.
Посмотреть вложение 65606
Здесь Ванг нету, что в логе? Using прописали?
 

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
745
Баллы
113
Здесь Ванг нету, что в логе? Using прописали?
Компиляция кода Ошибка в действии "CS0103" "The name 'CultureInfo' does not exist in the current context". [Строка: 1; Cтолбец: 92]
Компиляция кода Ошибка в действии "CS0103" "The name 'data_1' does not exist in the current context". [Строка: 3; Cтолбец: 20]

65607
 

Bas

Client
Регистрация
15.12.2013
Сообщения
637
Благодарностей
263
Баллы
63
Что не так? Date 1 положил значение с помощью установить значение переменной и добавил {-TimeNow.TimeNow-}
Формат не должен плавать, он прописан статично в виде "yyyy-MM-dd H-mm-ss--fff", значит и входная строка должна быть всегда в таком формате. ЗП генерирует 3 пробела между датой и временем. Правьте формат вывода соответственно под "yyyy-MM-dd H-mm-ss--fff". А то для вопроса задали одни значения, а коду подсовываете уже совсем другие. Научитесь грамотно ставить задачу, тогда и вопросов дополнительных возникать не будет.
 
  • Спасибо
Реакции: andropovleva

Bas

Client
Регистрация
15.12.2013
Сообщения
637
Благодарностей
263
Баллы
63
Компиляция кода Ошибка в действии "CS0103" "The name 'CultureInfo' does not exist in the current context". [Строка: 1; Cтолбец: 92]
Компиляция кода Ошибка в действии "CS0103" "The name 'data_1' does not exist in the current context". [Строка: 3; Cтолбец: 20]

Посмотреть вложение 65607
Здесь решение Вашей проблемы: https://zennolab.com/discussion/threads/s-kod-dlja-vyschityvanija-kolichestva-dnej.84524/post-568025
 

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
745
Баллы
113

andropovleva

Client
Регистрация
23.11.2019
Сообщения
581
Благодарностей
45
Баллы
28
Формат не должен плавать, он прописан статично в виде "yyyy-MM-dd H-mm-ss--fff", значит и входная строка должна быть всегда в таком формате. ЗП генерирует 3 пробела между датой и временем. Правьте формат вывода соответственно под "yyyy-MM-dd H-mm-ss--fff". А то для вопроса задали одни значения, а коду подсовываете уже совсем другие. Научитесь грамотно ставить задачу, тогда и вопросов дополнительных возникать не будет.
Да, сори , мой косяк! Всё исправил, всё работает! ОГРОМНОЕ СПАСИБО!!!!
 

Bas

Client
Регистрация
15.12.2013
Сообщения
637
Благодарностей
263
Баллы
63
Так сразу прописал.
using System;
using System.Globalization;
Посмотреть вложение 65608
Да бл***, какой ОБЩИЙ КОД, Вам выше куда сказали прописать???!!! На скрине может не особо понятно какая вкладка активна - это уже привет дизайнеру ЗП. В Using нужно писать, а не в общий код!
 
  • Спасибо
Реакции: Roman48

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
745
Баллы
113
Да бл***, какой ОБЩИЙ КОД, Вам выше куда сказали прописать???!!! На скрине может не особо понятно какая вкладка активна - это уже привет дизайнеру ЗП. В Using нужно писать, а не в общий код!
Именно общий код. Я читал и сразу именно это сделал. Можете, пожалуйста, мне в шаблоне скинуть? эти три строчки
 

Вложения

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
745
Баллы
113

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
745
Баллы
113
Бл... Какой я тупой, можете скинуть в шаблоне с тремя переменными?
Результат всегда один 1, а перемменую вставляю, код не работает.
1603041531374.png
 

Bas

Client
Регистрация
15.12.2013
Сообщения
637
Благодарностей
263
Баллы
63
Бл... Какой я тупой, можете скинуть в шаблоне с тремя переменными?
Результат всегда один 1, а перемменую вставляю, код не работает.
Посмотреть вложение 65610
А Вы попробуйте хотя бы эту тему прочитать, не через слово, а всю, уже давно решение написано, например вот:
нашел ошибку,

DateTime date1 = DateTime.ParseExact(project.Variables["date1"].Value, "yyyy-MM-dd H-mm-ss--fff", CultureInfo.InvariantCulture);
DateTime date2 = DateTime.ParseExact(project.Variables["date2"].Value, "yyyy-MM-dd H-mm-ss--fff", CultureInfo.InvariantCulture);

int days = (date1 - date2).Days;
return days;

так должно быть!

ОГРОМНОЕ СПАСИБО!!!!!!!!!!!!
Вы же так переменную вставили, верно?
C#:
DateTime date1 = DateTime.Now; //текущая дата и время
DateTime date2 = DateTime.ParseExact(project.Variables["data_1"].Value, "dd_MM_yyyy_H_mm", CultureInfo.InvariantCulture);

int days = (date1 - date2).Days;
return days;
Да и в целом, Вам мануал нужно читать сначала, а потом уже вопросы задавать. А то сейчас начнутся вопросы вроде "почему в конце строки с кодом точка с запятой, а не просто точка, ведь это же конец предложения" :D:D:D
 
  • Спасибо
Реакции: Roman48

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
745
Баллы
113
А Вы попробуйте хотя бы эту тему прочитать, не через слово, а всю, уже давно решение написано, например вот:


Вы же так переменную вставили, верно?
C#:
DateTime date1 = DateTime.Now; //текущая дата и время
DateTime date2 = DateTime.ParseExact(project.Variables["data_1"].Value, "dd_MM_yyyy_H_mm", CultureInfo.InvariantCulture);

int days = (date1 - date2).Days;
return days;
Да и в целом, Вам мануал нужно читать сначала, а потом уже вопросы задавать. А то сейчас начнутся вопросы вроде "почему в конце строки с кодом точка с запятой, а не просто точка, ведь это же конец предложения" :D:D:D
Так читал, и все перепробовал.
Шаблон, что не так?
 

Вложения

  • 11,1 КБ Просмотры: 83

Bas

Client
Регистрация
15.12.2013
Сообщения
637
Благодарностей
263
Баллы
63
Так читал, и все перепробовал.
Шаблон, что не так?
Все не так, особенно формат "dd_MM_yyyy_HHHH_mm". На такие форматы триллеры только снимать... Я написал формат, под Ваш случай, какого хрена Вы в него лезете, если нихрена в нем не понимаете???
 

Вложения

  • 9,7 КБ Просмотры: 76
  • Спасибо
Реакции: Roman48

Кто просматривает тему: (Всего: 4, Пользователи: 0, Гости: 4)