|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 9, 2004 04:09:26 Гораздо проще, в таком случае, текстовый файл засунуть в архив и прислать как вложение ;-) |
|
|
Дата: Авг 9, 2004 04:18:28 AsmGuru62 Можно. |
|
|
Дата: Авг 9, 2004 17:11:24 Вот исходники для получения даты, месяца, года и времени:
macro months [dayscount]
{
forward
if DAY <= dayscount
else
DAY = DAY-dayscount
MONTH = MONTH+1
forward
end if
}
TIME = %T
DAY = TIME/(24*3600)
DAY = DAY - (DAY+365)/(3*365+366)
YEAR = 1970+DAY/365
DAY = DAY mod 365 + 1
MONTH = 1
months 31,29,31,30,31,30,31,31,30,31,30,31
TIME = TIME mod (24*3600)
HOUR = TIME/3600
MINUTE = (TIME mod 3600)/60
SECOND = (TIME mod 3600) mod 60
mon dd MONTH
Правда давно я с этим баловался... |
|
|
Дата: Авг 9, 2004 18:55:38 · Поправил: Asterix pas Я уже видел такой или подобный макрос на board.flatassembler, как его применять?, что такое dayscount?, вобщем голый макрос мне ни о чём не говорит.. |
|
|
Дата: Авг 10, 2004 20:06:11 Извиняюсь за задержку с ответом. Вот как изменяются значения TIME = %T = 1092152037 - время в секундах от 1970 года DAY = TIME/(24*3600) = 12640 - дней прошло с 1970 года без учёта 29-х февралей DAY = DAY - (DAY+365)/(3*365+366) = 12632 - тоже с учётом 29-х февралей YEAR = 1970+DAY/365 = 2004 - получаем текущий год DAY = DAY mod 365 + 1 = 223 - получаем текущий день от начала года MONTH = 1 - готовимся к вызову маккроса months 31,29,31,30,31,30,31,31,30,31,30,31 ;MONTH = 8 - вызываем макрос months в результате получаем текущий месяц (пояснения ниже) TIME = TIME mod (24*3600) = 56037 - количество секунд прошедших с начала года HOUR = TIME/3600 = 15 - количество часов прошедших с начала суток MINUTE = (TIME mod 3600)/60 = 33 - количество минут прошедших с начала часа SECOND = (TIME mod 3600) mod 60 = 57 - количество секунд прошедших с начала минуты У меня почему то часы получаются на 6 меньше чем у нас время но остальное правильно. Теперь к макросу: вызываем months 31,29,31,30,31,30,31,31,30,31,30,31 передаём 12 параметров ( по количеству месяцев) каждый параметр соответствует количеству дней в соответствующем месяце. на момент вызова макроса DAY равен количеству дней с начала года macro months [dayscount] { forward if DAY <= dayscount; else DAY = DAY-dayscount MONTH = MONTH+1 forward end if } вычитаем из значения DAY текущее значение dayscount до тех пор пока DAY больше числа дней в месяцах. А поскольку мы ещё прибавляем по единичке за каждый проход, то в результате получаем номер текущего месяца. Естественно в последующие три года значение второго параметра передаваемого в макрос должно быть равно 28. dayscount это название каждого из передаваемых в макрос параметров. |
|
|
Дата: Авг 10, 2004 20:12:17 AsmGuru62 Вы пробовали отправить мне письмо? Ко мне пришла пара пустых писем. Если это Вы попробуйте на другой ящик |
|
|
Дата: Авг 10, 2004 20:36:42 pas Ужассс. Кто придумал таким образом высчитывать дату? Что мешает Privalov'у в момент компиляции в случае указания специального параметра, допустим это %t, вызывать GetLocalTime и передавать полученные из структуры SYSTEMTIME параметры в соответствующих переменных? Когда мне нужно было вставить дату компиляции пришлось делать так - приаттачил, для компиляции нужно запустить bat файл предварительно поправив пути на свои. _282401854__CompileTime.rar |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.065 |