Перейти к содержимому

Фотография

SilkTest


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 Julik

Julik

    Новый участник

  • Members
  • Pip
  • 1 сообщений

Отправлено 25 июля 2008 - 16:31

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

#2 Dmitry_NS

Dmitry_NS

    Активный участник

  • Members
  • PipPip
  • 134 сообщений
  • ФИО:Дима
  • Город:Елизово

Отправлено 28 июля 2008 - 07:15

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

Пример:

DATETIME dt = AddDateTime( GetDateTime() , -1 )

Как раз вернет вчерашнюю дату. Более детально смотрите в хелпе функцию AddDateTime
  • 0
Основной принцип моего существования — служение гуманистическим идеалам человечества.

#3 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 28 июля 2008 - 08:32

есть еще индусский способ

Sleep (86400)
DATETIME dt = GetDateTime()

:crazy:
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#4 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 28 июля 2008 - 08:33

есть еще индусский способ

Sleep (86400)
DATETIME dt = GetDateTime()

:crazy:



а, блин, тупанул :(
это для следующего дня
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#5 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 28 июля 2008 - 09:07

есть еще индусский способ

Sleep (86400)
DATETIME dt = GetDateTime()

:lol:



а, блин, тупанул :(
это для следующего дня

Дилетант :crazy:

SYS_Execute( "echo {FormatDateTime( AddDateTime( GetDateTime() , -2 ) , "dd-mm-yy" )} | date" )
Sleep (86400)
DATETIME dt = GetDateTime()

  • 0

#6 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 28 июля 2008 - 10:15

Дилетант :crazy:

SYS_Execute( "echo {FormatDateTime( [b]AddDateTime[/b]( GetDateTime() , -2 ) , "dd-mm-yy" )} | date" )
Sleep (86400)
DATETIME dt = GetDateTime()


Ерунда получается: ты используешь функцию AddDateTime, а это уже чит.

Вот функция, возвращающая вчерашнюю дату (используется доп. функция, которая вычисляет, високосный ли год).

[-] BOOLEAN IsLeapYear(INTEGER iYear)
	[ ] return (iYear%4 == 0 && (iYear%100 != 0) || iYear%400 == 0)
[ ] 
[-] DATETIME GetYestardayDate(DATETIME dt)
	[ ] LIST OF INTEGER li30 = {4, 6, 9, 11}
	[ ] 
	[ ] INTEGER iFebDays = (IsLeapYear(GetDateTimePart(dt, DTP_YEAR)) ? 29 : 28)
	[ ] INTEGER iMonth = GetDateTimePart(dt, DTP_MONTH)
	[ ] INTEGER iDay = GetDateTimePart(dt, DTP_DAY)
	[ ] INTEGER iYear = GetDateTimePart(dt, DTP_YEAR)
	[ ] DATETIME dtRet
	[ ] 
	[ ] INTEGER iDaysInMonth
	[-] if(iMonth == 2)
		[ ] iDaysInMonth = iFebDays
	[-] else
		[ ] iDaysInMonth = ListFind(li30, iMonth) ? 30 : 31
	[ ] 
	[ ] Print("Number of days in {iMonth} == {iDaysInMonth}")
	[ ] 
	[-] if(iDay == 1)
		[-] if(iMonth == 1)
			[ ] dtRet = "{iYear-1}-12-31"
		[-] else
			[-] if(iMonth-1 == 2)
				[ ] iDay = iFebDays
			[-] else
				[ ] iDay = ListFind(li30, iMonth-1) ? 30 : 31
			[ ] dtRet = "{iYear}-{iMonth-1}-{iDay}"
	[-] else
		[ ] dtRet = "{iYear}-{iMonth}-{iDay-1}"
	[ ] return dtRet
[ ]

есть лишь один момент: в сентябре 1752 года был переход с Юлианского календаря на Грегорианский и там был сдвиг на 12 дней. Этого моя функция не учитывает :(
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#7 KaNoN

KaNoN

    АЦЦКИЙ СОТОНА

  • Members
  • PipPipPipPipPipPip
  • 1 260 сообщений
  • ФИО:Колесник Николай
  • Город:Днепропетровск > Киев > Лондон

Отправлено 28 июля 2008 - 11:04

[ ] dtRet = "{iYear}-{iMonth}-{iDay-1}"


А MakeDateTime функцию мы не учили? :crazy:

есть лишь один момент: в сентябре 1752 года был переход с Юлианского календаря на Грегорианский и там был сдвиг на 12 дней. Этого моя функция не учитывает :(

Дык, это. Там if один добавить и при случае вычесть нужное количество дней. :lol:
  • 0

#8 Genka

Genka

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 328 сообщений
  • ФИО:Геннадий Алпаев
  • Город:Украина, Днепр


Отправлено 28 июля 2008 - 12:09

А MakeDateTime функцию мы не учили? :friends:


ыыы, это я тупанул. Вообще редко с датами работал, да и СилкТестом уже больше 1,5 лет не пользуюсь...

Дык, это. Там if один добавить и при случае вычесть нужное количество дней. :focus:

на самом деле не совсем так. Кроме сдвига нужно еще делать проверку, что заданная дата не попадает в тот интервал (3-14 сентября 1572г.). Короче, для этой идиотской задачи не было смысла тратить время просто :)
  • 0

TestComplete для начинающих (видеозаписи курса)

Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)

Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest


#9 VDmitry

VDmitry

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 04 августа 2008 - 09:43

есть еще индусский способ

Sleep (86400)
DATETIME dt = GetDateTime()

:lol:



а, блин, тупанул :(
это для следующего дня


:) правильно писать вот так:

DATETIME dt = GetDateTime()
Sleep (86400)

  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных