<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум компьютерной помощи &mdash; Работа с датой в lotus script]]></title>
	<link rel="self" href="http://itpmr.ru/extern.php?action=feed&amp;tid=830&amp;type=atom" />
	<updated>2020-09-01T06:08:27Z</updated>
	<generator>PunBB</generator>
	<id>http://itpmr.ru/viewtopic.php?id=830</id>
		<entry>
			<title type="html"><![CDATA[Re: Работа с датой в lotus script]]></title>
			<link rel="alternate" href="http://itpmr.ru/viewtopic.php?pid=124794#p124794" />
			<content type="html"><![CDATA[<p>есть два поля типа дата.&nbsp; &nbsp;dat-&nbsp; число, tim - минуты<br />Хочу в docTMP.time&nbsp; получить полную дату...<br />docTMP.time = cd.dat&nbsp; +&quot;.&quot;+ cd.tim</p><p>Решение: используем класс notesdatetime<br /></p><div class="codebox"><pre><code>Dim dateTime1 As New NotesDateTime( cd.dat(0))
Dim dateTime2 As New NotesDateTime( cd.tim(0))
 print  &quot;Date:   &quot; &amp; dateTime1.DateOnly &amp; Chr(10) &amp;  &quot;Time:   &quot; &amp; dateTime2.TimeOnly</code></pre></div><p>просто не всегда можно вытащить из поля дата просто дату.. бывает она вместе со временем тащится.. поэтому нужно иногда использовать этот класс, а методами dateonly и timeonly конкретно дату или время вытаскивает</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>http://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2020-09-01T06:08:27Z</updated>
			<id>http://itpmr.ru/viewtopic.php?pid=124794#p124794</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с датой в lotus script]]></title>
			<link rel="alternate" href="http://itpmr.ru/viewtopic.php?pid=124671#p124671" />
			<content type="html"><![CDATA[<p>Сравнение дат в лотус-скрипте. Это просто пипец.<br />Если я сделал формат до сравнения дат, то сравнение дат не работает корректно.</p><br /><p>Пример.<br />Вот если даты привести к формату командой<br />Arrmy1(ArX%) =Format$( doc2.DateF1_1(0), &quot;dd.mm.yyyy&quot; ) <br />то потом уже <br />Set lastd =&nbsp; New NotesDateTime(Arrmy1(x))<br />Set prevd = New NotesDateTime(Arrmy1(x-1))<br />mytime# = prevd.TimeDifferenceDouble(lastd) <br />Значение в днях&nbsp; Abs(mytime# / 86400)&nbsp; &nbsp;-&nbsp; будет работать совсем некорректно, как то рандомно prevd&nbsp; &gt; lastd&nbsp; !</p><br /><p>А если дату не форматировать, а взять просто значение с поля:&nbsp; Arrmy1(ArX%) =doc2.DateF1_1(0)<br />то<br />mytime# = prevd.TimeDifferenceDouble(lastd) <br />работает корректно.</p><br /><p>Или проблема в Format$&nbsp; ? а не в Format...<br />Переводит во время не дату, а строку.</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>http://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2017-08-16T11:50:22Z</updated>
			<id>http://itpmr.ru/viewtopic.php?pid=124671#p124671</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с датой в lotus script]]></title>
			<link rel="alternate" href="http://itpmr.ru/viewtopic.php?pid=124572#p124572" />
			<content type="html"><![CDATA[<p>Дата в формате:&nbsp; 04.08.2016 8:27:30</p><div class="codebox"><pre><code>Dim strr As Variant
strr = Evaluate(&quot;@Adjust( @Now( [ServerTime]) ; 0 ; 0 ; 0 ; -1 ; 0 ; 0 )&quot;)</code></pre></div><p>Или </p><div class="codebox"><pre><code>Evaluate(&quot;@Now( [SERVERTIME])&quot;)</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>http://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2016-08-04T06:31:01Z</updated>
			<id>http://itpmr.ru/viewtopic.php?pid=124572#p124572</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с датой в lotus script]]></title>
			<link rel="alternate" href="http://itpmr.ru/viewtopic.php?pid=124276#p124276" />
			<content type="html"><![CDATA[<p>Получение в лотусе времени сервера в формате год-месяц-число-час-минута-секунда:<br />Вариант 1. мега-костыль</p><div class="codebox"><pre><code>Sub Click(Source As Button)
    Dim serverDate, macro$ &#039; для получения времени сервера
    macro1$=&quot;@Year(@Now([ServerTime]))&quot;
    macro2$=&quot;@Month(@Now([ServerTime]))&quot;
    macro3$=&quot;@Day(@Now([ServerTime]))&quot;
    macro4$=&quot;@Hour(@Now([ServerTime]))&quot;
    macro5$=&quot;@Minute(@Now([ServerTime]))&quot;
    macro6$=&quot;@Second(@Now([ServerTime]))&quot;
    serverDate1= (Evaluate(macro1$))
    serverDate2= (Evaluate(macro2$))
    serverDate3= (Evaluate(macro3$))
    serverDate4= (Evaluate(macro4$))
    serverDate5= (Evaluate(macro5$))
    serverDate6= (Evaluate(macro6$))
    servdate$ =  Cstr (serverDate1(0)) +  Cstr (serverDate2(0)) +  Cstr (serverDate3(0))+  Cstr (serverDate4(0))+  Cstr (serverDate5(0)) +  Cstr (serverDate6(0))
    Msgbox servdate$
    
End Sub</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>http://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2015-03-12T13:05:35Z</updated>
			<id>http://itpmr.ru/viewtopic.php?pid=124276#p124276</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с датой в lotus script]]></title>
			<link rel="alternate" href="http://itpmr.ru/viewtopic.php?pid=124079#p124079" />
			<content type="html"><![CDATA[<p>И при такой формуле ошибка на событии валидации: <br /></p><div class="codebox"><pre><code>@If( !@IsNull(ДАТА_РЕЗОЛЮЦИИ_) &amp; (ДАТА_РЕЗОЛЮЦИИ_ &gt; СРОК_ИСПОЛНЕНИЯ_) ; @Prompt([YesNo]; &quot;ОШИБКА!&quot;; &quot;Не правильно указанна дата Срока исполнения документа!&quot;);@False)</code></pre></div><div class="codebox"><pre><code>@If(ДАТА_РЕЗОЛЮЦИИ_&lt;СРОК_ИСПОЛНЕНИЯ_; @Success; @Failure(&quot;Ошибка&quot;))</code></pre></div><p>Получилось только с агентом:<br /></p><div class="codebox"><pre><code>CurDoc.ДАТА_РЕЗОЛЮЦИИ_ = [b]Cdat[/b](dateTime.DateOnly)</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>http://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2014-01-14T14:01:58Z</updated>
			<id>http://itpmr.ru/viewtopic.php?pid=124079#p124079</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Работа с датой в lotus script]]></title>
			<link rel="alternate" href="http://itpmr.ru/viewtopic.php?pid=124077#p124077" />
			<content type="html"><![CDATA[<p>Задача: на лотус скрипте получить текущюю дату и прибавить к ней n дней.</p><p>Вариант 1:</p><div class="codebox"><pre><code>Dim dateTime As New NotesDateTime( &quot;&quot; )
Call dateTime.SetNow
CurDoc.ДАТА_РЕЗОЛЮЦИИ_ = dateTime.DateOnly
days= DelDoc.SrokIspol(0) &#039; тянем срок исполнения с номенклатуры
Call dateTime.AdjustDay(days) 
days = dateTime.DateOnly
&#039;days = dateTime.LocalTime   вносит в формате 25.01.2014 13:19:51 ZE2
&#039;days = Format$(days, &quot;Short Date&quot; )   
CurDoc.ДАТА_РЕЗОЛЮЦИИ_= days &#039; вносит в формате 11.01.2014
CurDoc.СРОК_ИСПОЛНЕНИЯ_= days  (её может редактировать руководитель)
CurDoc.СРОК_ИСПОЛНЕНИЯ_2 = days (для отображения исполнителям, его value = СРОК_ИСПОЛНЕНИЯ_)</code></pre></div><p>Но будет ошибка<br />comparison operators must be supplied two values of the same data type<br />, если в поле СРОК_ИСПОЛНЕНИЯ_&nbsp; &nbsp; в событии&nbsp; input validation<br /></p><div class="codebox"><pre><code>@If(ДАТА_РЕЗОЛЮЦИИ_ &gt; СРОК_ИСПОЛНЕНИЯ_ ; @Prompt([YesNo]; &quot;ОШИБКА!&quot;; &quot;Не правильно указанна дата Срока исполнения документа!&quot;);@True)</code></pre></div><br /><p>Вариант 2 с использованием Evaluate:<br /></p><div class="codebox"><pre><code>days= 10
macro$={@Adjust(@Date(@Now([ServerTime]));0;0;} &amp; Cint(days) &amp; {;0;0;0)}
serverDate= (Evaluate(macro$))</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>http://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2014-01-10T10:01:11Z</updated>
			<id>http://itpmr.ru/viewtopic.php?pid=124077#p124077</id>
		</entry>
</feed>
