Foreversoft.ru

IT Справочник
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Excel vba разница дат

Excel vba разница дат

200?’200px’:»+(this.scrollHeight+5)+’px’);»>
Option Explicit

Function calculate_date_dif(date_from, date_to) As String
Dim y As Integer
Dim m As Integer
Dim d As Integer

‘date_from = #1/1/2012#
‘date_to = #25/3/2012#

d = DateDiff(«d», date_from, date_to)

y = d 365 ‘kolvo let
If y > 0 Then: m = (d 30) — (y * 12): Else: m = 0 ‘Esli 84 дней, 00 месяцев, 00 лет

200?’200px’:»+(this.scrollHeight+5)+’px’);»>
Option Explicit

Function calculate_date_dif(date_from, date_to) As String
Dim y As Integer
Dim m As Integer
Dim d As Integer

‘date_from = #1/1/2012#
‘date_to = #25/3/2012#

d = DateDiff(«d», date_from, date_to)

y = d 365 ‘kolvo let
If y > 0 Then: m = (d 30) — (y * 12): Else: m = 0 ‘Esli 84 дней, 00 месяцев, 00 лет

200?’200px’:»+(this.scrollHeight+5)+’px’);»>
Option Explicit

Function calculate_date_dif(date_from, date_to) As String
Dim y As Integer
Dim m As Integer
Dim d As Integer

‘date_from = #1/1/2012#
‘date_to = #25/3/2012#

d = DateDiff(«d», date_from, date_to)

y = d 365 ‘kolvo let
If y > 0 Then: m = (d 30) — (y * 12): Else: m = 0 ‘Esli 84 дней, 00 месяцев, 00 лет

WeRiXДата: Вторник, 27.01.2015, 07:23 | Сообщение № 6
Michael_SДата: Вторник, 27.01.2015, 07:36 | Сообщение № 7

ЯД: 41001136675053
WM: R389613894253

Michael_SДата: Вторник, 27.01.2015, 07:39 | Сообщение № 8

ЯД: 41001136675053
WM: R389613894253

WeRiXДата: Вторник, 27.01.2015, 18:48 | Сообщение № 9

Michael_S, конечно, Вы правы. терпеть не могу невеж, что абсолютно не мешает самому быть им же (:
И да, Ваш вариант тот что нужен.

Тему можно закрывать.

Michael_S, конечно, Вы правы. терпеть не могу невеж, что абсолютно не мешает самому быть им же (:
И да, Ваш вариант тот что нужен.

Тему можно закрывать.

Сообщение Michael_S, конечно, Вы правы. терпеть не могу невеж, что абсолютно не мешает самому быть им же (:
И да, Ваш вариант тот что нужен.

Тему можно закрывать.

ЗЫ: Извиняюся. Автор — WeRiX
Дата добавления — 27.01.2015 в 18:48

Функция DateDiff

Возвращает значение типа Variant ( Long), указывающее на количество интервалов времени между двумя указанными датами.

DateDiff ( интервал, дата1, дата2 [ , первый_день_недели[ , первая_неделя_года] ] )

Функция DateDiff имеет следующие аргументы:

Совет: В Access 2010 построитель выражений включает функцию IntelliSense, которая указывает требуемые аргументы.

Обязательный аргумент. Строковое выражение, которое обозначает интервал времени, используемый для вычисления разницы значений дата1 и дата2.

Обязательный. Вариант ( Дата). Две даты, которые нужно использовать при вычислении.

Необязательный. Константа, задающая первый день недели. Если не указано, предполагается воскресенье.

Необязательный аргумент. Константа, задающая первую неделю года. Если значение не указано, предполагается, что первая неделя является неделей, в которую входит 1 января.

Аргумент интервалАргумент имеет следующие значения:

Аргумент первый_день_недели может принимать следующие значения:

Используются параметры API NLS.

Воскресенье (по умолчанию)

Используются параметры API NLS.

Начинается с недели, на которую приходится 1 января (по умолчанию).

Первой неделей считается та, которая содержит хотя бы четыре дня нового года.

Первой неделей считается первая полная неделя года.

Функция DateDiff используется для определения числа интервалов времени между двумя датами. Например, DateDiff можно использовать для вычисления числа дней между двумя датами или числа недель между сегодняшним днем и концом года.

Для вычисления числа дней между аргументами дата1 и дата2 используется значение «День года» («y») или «День» («d»). Если интервал задан как «День недели» («w»), DateDiff возвращает число недель между двумя датами. Если день дата1 приходится на понедельник, DateDiff считает число понедельников до дня дата2. День, соответствующий значению аргумента дата2, учитывается, а дата1 — нет. Однако если интервал задан как «Неделя» («ww»), функция DateDiff возвращает число календарных недель между двумя датами. Для этого рассчитывается число воскресений между днями дата1 и дата2. DateDiff учитывает день дата2, если он приходится на воскресенье; день дата1 не учитывается, даже если он приходится на воскресенье.

Если значение дата1 соответствует более поздней дате, чем значение дата2, функция DateDiff возвращает отрицательное число.

Аргумент первый_день_недели влияет на вычисления, если заданы значения «w» и «ww».

Если аргумент дата1 или дата2 содержит литерал даты, указанный год становится постоянной частью этой даты. Однако если аргумент дата1 или дата2 заключен в двойные прямые кавычки (» «), а год опущен, при каждой оценке выражения дата1 или дата2 в код подставляется текущий год. Это позволяет писать код, который можно использовать для разных лет.

Если при сравнении 31 декабря с 1 января следующего года указано значение «Год» («yyyy»), функция DateDiff возвращает 1, хотя прошел всего один день.

Примечание: Если в свойстве Calendar задан григорианский календарь, аргументы дата1 и дата2 следует указывать соответствующим образом. Если используется календарь Хиджра, дата должна соответствовать ему.

Примеры запроса DateDiff

Выберите DateDiff («гггг», #01/01/2010 #, [Датеофсале]) как Выражение1 из Продуктсалес;

Возвращает разницу между Date2 и Date1 (например, «использовать закладку» Date1 «и» Date2 «как новую) как число» лет «. Результат: разница между значениями в поле «Датеофсале» и датой «01/01/2010» — числом лет.

Выберите DateDiff («q», [Датеофсале], Date ()) в качестве Дайссинцесале от Продуктсалес;

Возвращает разницу между системной датой и «Датеофсале» как количество кварталов (на основе клиентами года) и отображается в столбце «Дайссинцесале». Возвращает разницу между системной датой и «Датеофсале» как число «месяцев» и отображается в столбце «Дайссинцесале».

Выберите DateDiff («y», [Датеофсале], Date ()) в качестве Дайссинцесале от Продуктсалес;

Возвращает разницу между системной датой и «Датеофсале» как количество «дней» и отображается в столбце «Дайссинцесале».

Выберите DateDiff («d»; [Датеофсале], Date ()) в качестве Дайссинцесале от Продуктсалес;

Возвращает разницу между системной датой и «Датеофсале» как количество «дней» и отображается в столбце «Дайссинцесале».

Выберите DateDiff («w», [Датеофсале], Date ()) в качестве Дайссинцесале от Продуктсалес;

Возвращает разницу между системной датой и «Датеофсале» как количество «будние дни» и отображается в столбце «Дайссинцесале». Если «Датеофсале» находится в понедельник, функция DateDiff подсчитывает количество понедельников до системной даты. Она учитывает системную дату, но не значение в поле «Датеофсале».

Выберите DateDiff («WW», [Датеофсале], Date ()) в качестве Дайссинцесале от Продуктсалес;

Возвращает разницу между системной датой и «Датеофсале» как число «клиентами weeks» и отображается в столбце «Дайссинцесале». Он подсчитывает число воскресенья между «Датеофсале» и «системной датой». Система будет подсчитывать системную дату, если она пропадает на воскресенье. но не подсчитывает «Датеофсале», даже если это не воскресенье.

Выберите DateDiff («h»; [DateTime], Date ()) в качестве Дайссинцесале от Продуктсалес;

Возвращает разницу между системной датой и «DateTime» и числом «hours» и отображается в столбце «Дайссинцесале».

Выберите DateDiff («n»; [DateTime], Date ()) в качестве Дайссинцесале от Продуктсалес;

Возвращает разницу между системной датой и «DateTime» и числом «минут» и отображается в столбце «Дайссинцесале».

Выберите DateDiff («s»; [DateTime], Date ()) в качестве Дайссинцесале от Продуктсалес;

Возвращает разницу между системной датой и «DateTime» и числом «секунд» и отображается в столбце «Дайссинцесале».

Пример выражения

Использование функции DateDiff в выражении Функцию DateDiff можно использовать везде, где вы можете использовать выражения. Например, предположим, что у вас есть форма, которую вы используете для выполнения заказов клиентов. В таблице «заказы» имеется поле с именем срок, содержащее дату, на которую клиент должен получить заказ. Вы можете использовать функцию DateDiff с текстовым полем в форме для отображения количества дней, оставшееся до отгрузки заказа.

Если предположить, что отгрузка любого заказа занимает десять дней, можно задать для свойства Данные текстового поля следующее значение:

=DateDiff(«d», Now(), [Заказы].[Срок])-10

Если открыть форму в режиме формы, то в текстовом поле отобразится количество дней, оставшихся до даты, когда необходимо отгрузить заказ. Если до даты, к которой клиенту необходимо получить заказ, осталось менее 10 дней, в текстовом поле отображается отрицательное число, указывающее, на сколько дней задержится доставка товара при условии немедленной отгрузки.

Пример VBA

Использование функции DateDiff в коде VBA

В данном примере функция DateDiff отображает число дней между указанной датой и сегодняшним днем.

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

Урок 15 по VBA — функции работы с датой и временем

И так, в этой по своей природе унылой публикации я кратко рассмотрю vba функции даты и времени, которые позволяют получить или установить параметры даты и времени, задать таймер выполнения заданного блока кода или сценария в целом. Также в конце статьи будет затронута функция vba языка format. Которая отвечает за форматирование данных.

Функции VBA даты и времени

Date () – позволяет получить значение текущей даты, установленной в системе.

Time () – вернет установленное в системе время

Now () – комбинированная функция, так как она позволяет получить значение системной даты и времени.

DateAdd (интервал, число, дата) – позволяет прибавить к заданной дате (параметр “дата”) указанное количество лет, кварталов, месяцев или секунд. На выходе мы получим следующее значение: дата + (число * интервал).

DateDiff (интервал, дата, дата2) – позволяет получить разницу между заданными датами, например. В годах, месяцах и так далее, разница определяется параметром “интервал”.

DatePart (интервал, дата) – позволяет получить заданную часть даты, например, только значение года, месяца или дня недели. Результат возврата регулируется параметром “интервал”.

DateSerial (год, месяц, день) – данная функция vba принимает три числовые значения, по которым возвращается дата.

DateValue (строка) – аналог предыдущей функции, но тут в качестве параметра мы передаем не числа. А строковое значение, на основе которого будет возвращаться дата, vba работа с датами.

Day (дата) – позволяет получить значение текущего дня (если отсутствует параметр “дата”) или для заданной даты.

Year (дата) – позволяет получить значение текущего года (если отсутствует параметр “дата”) или для заданной даты.

Month (дата) – позволяет получить значение текущего месяца (если отсутствует параметр “дата”) или для заданной даты.

Weekday (дата) – позволяет получить значение текущей недели (если отсутствует параметр “дата”) или для заданной даты.

Hour (время) – позволяет получить текущее значение часов (если отсутствует параметр “время”) или для заданного времени, vba дата и время.

Minute (время) – позволяет получить текущее значение минут (если отсутствует параметр “время”) или для заданного времени.

Second (время) – позволяет получить текущее значение секунд (если отсутствует параметр “время”) или для заданного времени.

Timer () – удобная функция для определения промежутка времени, ушедшего на выполнение заданного блока кода. Сама функция возвращает целое количество секунд, которые прошли начиная с полуночи.

TimeSerial (часы, минуты, секунды) – позволяет получить время, заданное тремя параметрами

TimeValue (строка) – работает аналогично предыдущей функции, но для получения времени, передается не целое значение, а строковое.

MonthName (числовое значение) – VBA функция позволяет получить название месяца, в качестве параметра указываем номер месяца.

WeekDay (дата) — задает возвращает имя месяца словами по его номеру. Возвращаемое значение зависит от региональных настроек. Если они русские, то вернется русское название месяца.

Помимо указанных выше vba функций даты и времени, можно использовать и такие вариации:

Date (дата) – позволяет задать системную дату

Time (время) – позволяет задать системное время.

В приведенных выше функциях даты и времени vba языка используется параметр “интервал”, который может принимать следующие значения:

VBA функции форматирование данных

Для форматирования данных в языке VBA используется функция Format , которая позволяет сформировать данные любого встроенного типа, используя заданный образец. Общий синтаксис функции format:

Format (Выражение, [“формат”, [первый день недели, [первая неделя года]]]) – тут параметр “выражение” является любым допустимым значением. Формат – необязательный параметр, который задает формат данных, должен заключаться в кавычки. Остальные два параметра также являются необязательными, и задают день недели, который нужно считать первым, и первую неделю года.

Параметр формат может принимать следующие значения:

  • General Number – числовое значение без выделения разрядов тысяч, например, 12150,2003
  • Currency – денежный формат, выделяются тысячные разряды и два знака после запятой, например, 255,33р.
  • Fixed – числовое значение без выделения разрядов тысяч и двумя знаками после запятой, например, 22439,12.
  • Standart – числовое значение, которое умножается на 100, при этом, остаются два знака после запятой и символ процента, например, 55,63%.
  • Scientific – числовой формат для научных вычисление, например, 5,23Е+03
  • Yes/No – данный параметр определяет, что функция вернет “Да” если форматированное выражение содержит строку Нет, или ненулевое значение и “Нет” в противном случае.
  • True/False – аналог предыдущего параметра, но для строк “Истина” и “Ложь”.
  • On/Off – для строк вида “Вкл” и “Выкл”.
  • General Date – форматирование выражения в соответствии с установленными в системе стандартами даты и времени, например, 10.11.02 12:25:50
  • Long Date – вывод полного формата даты, в зависимости от установок в системе, например, 10 октября 2013 г, vba функции даты.
  • Medium Date – средний формат дат, например, 10-Окт-13.
  • Short Date – короткий вывод формата даты, например, 10.10.13.
  • Long Time – вывод в формате времени (часы, минуты, секунды), например, 12:20:40.
  • Medium Time – 12 часовой формат времени (часы, минуты), например, 05:30.
  • Short Time — 24 часовой формат времени (часы, минуты), например, 17:30.

Спасибо за внимание. Автор блога Владимир Баталий

Excel vba разница дат

200?’200px’:»+(this.scrollHeight+5)+’px’);»>
Option Explicit

Function calculate_date_dif(date_from, date_to) As String
Dim y As Integer
Dim m As Integer
Dim d As Integer

‘date_from = #1/1/2012#
‘date_to = #25/3/2012#

d = DateDiff(«d», date_from, date_to)

y = d 365 ‘kolvo let
If y > 0 Then: m = (d 30) — (y * 12): Else: m = 0 ‘Esli 84 дней, 00 месяцев, 00 лет

200?’200px’:»+(this.scrollHeight+5)+’px’);»>
Option Explicit

Function calculate_date_dif(date_from, date_to) As String
Dim y As Integer
Dim m As Integer
Dim d As Integer

‘date_from = #1/1/2012#
‘date_to = #25/3/2012#

d = DateDiff(«d», date_from, date_to)

y = d 365 ‘kolvo let
If y > 0 Then: m = (d 30) — (y * 12): Else: m = 0 ‘Esli 84 дней, 00 месяцев, 00 лет

200?’200px’:»+(this.scrollHeight+5)+’px’);»>
Option Explicit

Function calculate_date_dif(date_from, date_to) As String
Dim y As Integer
Dim m As Integer
Dim d As Integer

‘date_from = #1/1/2012#
‘date_to = #25/3/2012#

d = DateDiff(«d», date_from, date_to)

y = d 365 ‘kolvo let
If y > 0 Then: m = (d 30) — (y * 12): Else: m = 0 ‘Esli 84 дней, 00 месяцев, 00 лет

WeRiXДата: Вторник, 27.01.2015, 07:23 | Сообщение № 6
Michael_SДата: Вторник, 27.01.2015, 07:36 | Сообщение № 7

ЯД: 41001136675053
WM: R389613894253

Michael_SДата: Вторник, 27.01.2015, 07:39 | Сообщение № 8

ЯД: 41001136675053
WM: R389613894253

WeRiXДата: Вторник, 27.01.2015, 18:48 | Сообщение № 9

Michael_S, конечно, Вы правы. терпеть не могу невеж, что абсолютно не мешает самому быть им же (:
И да, Ваш вариант тот что нужен.

Тему можно закрывать.

Michael_S, конечно, Вы правы. терпеть не могу невеж, что абсолютно не мешает самому быть им же (:
И да, Ваш вариант тот что нужен.

Тему можно закрывать.

Сообщение Michael_S, конечно, Вы правы. терпеть не могу невеж, что абсолютно не мешает самому быть им же (:
И да, Ваш вариант тот что нужен.

Тему можно закрывать.

ЗЫ: Извиняюся. Автор — WeRiX
Дата добавления — 27.01.2015 в 18:48

Читать еще:  Vba excel условие if
Ссылка на основную публикацию
Adblock
detector