Что нового

Работа с датой, надо от минусовать 30 дней.

komorov74

Новичок
Сообщения
81
Репутация
0
Добрейшего дня.

Столкнулся с траблами.

Имеем сегодняшнюю дату . Формат совпадает с 08.03.2012

Код:
$fdfgf=_NowDate()




как из неё получить вчерашнею.

Код:
$fdfgf=_NowDate()-1



не подходит так как на выходе получаем значение 7.03 а надо хотя бы 07.03

Есть ли какой либо более простой метод кроме всяких парсингов ,переменных и добавлений года в ручную :smile:
 
Автор
K

komorov74

Новичок
Сообщения
81
Репутация
0
Спасибо!!!!! Чуть переделал.
Код:
;Dim $aDay[3] = [20, -1, -30]
for $aDay=-5 to 0
;For $i = 0 To 2
    ConsoleWrite(_DateTimeFormat(_DateAdd('d', $aDay, _NowCalcDate()), 2) & @LF)
; Next
 next



В итоге получили :
03.03.2012
04.03.2012
05.03.2012
06.03.2012
07.03.2012
08.03.2012

Для меня то что надо!!!!

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

БЛИН, пока читал наткнулся на ответ в другой ветке ,в принципе на такой же вопрос.
А ведь до этого искал ПОИСКОМ на форуме!!!!!!!
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Дата в компьютере представлена обычным 64-разрядным числом, представляющим количество 100-наносекундных интервалов с 1 января 1601 года (UTC). Вот и отнимайте от этого числа нужное количество наносекунд.

Код:
#Include <Date.au3>

$tFT = _Date_Time_GetSystemTimeAsFileTime()

; Текущая дата
$tLT = _Date_Time_FileTimeToLocalFileTime(DllStructGetPtr($tFT))
ConsoleWrite(_Date_Time_FileTimeToStr($tLT) & @CR)

$tInt = DllStructCreate('uint64', DllStructGetPtr($tFT))
DllStructSetData($tInt, 1, DllStructGetData($tInt, 1) - 30 * 24 * 60 * 60 * 10000000)

; Текущая дата - 30 дней
$tLT = _Date_Time_FileTimeToLocalFileTime(DllStructGetPtr($tFT))
ConsoleWrite(_Date_Time_FileTimeToStr($tLT) & @CR)
 
Верх