Функция, обратная к DToS() | |
---|---|
Goodwin Автор Сообщений: 3539 Откуда: Омск Дата регистрации: 03.05.2006 |
Есть такое в семёрке?
Или опять ручками? |
Re: Функция, обратная к DToS() | |
---|---|
AleksM Сообщений: 17881 Дата регистрации: 11.11.2003 |
Нету. Напиши свою.
?"{^"+TRANSFORM(DTOS(DATE()),"@R 9999-99-99")+"}" ------------------ Лучше переесть, чем недоспать. Не спеши, а то успеешь. Исправлено 1 раз(а). Последнее : AleksM, 19.03.07 11:56 |
Re: Функция, обратная к DToS() | |
---|---|
Goodwin Автор Сообщений: 3539 Откуда: Омск Дата регистрации: 03.05.2006 |
Тоже не шибко длинно. Спасибо.
|
Re: Функция, обратная к DToS() | |
---|---|
AleksM Сообщений: 17881 Дата регистрации: 11.11.2003 |
Мона ещё короче
?TRANSFORM(DTOS(DATE()),"@R {^9999-99-99")+"}" PS Закрывающую фигурную скобку в TRANSFORM() почему то игнорирует. ------------------ Лучше переесть, чем недоспать. Не спеши, а то успеешь. |
Re: Функция, обратная к DToS() | |
---|---|
Dik Сообщений: 327 Откуда: Москва Дата регистрации: 11.10.2000 |
Цитата:Наверное потому, что пытается проинтерпретировать содержимое как дату (гипотеза) |
Re: Функция, обратная к DToS() | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
Нет - просто выражение закончилось
------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: Функция, обратная к DToS() | |
---|---|
AleksM Сообщений: 17881 Дата регистрации: 11.11.2003 |
Вадька, а где DTOS()?
------------------ Лучше переесть, чем недоспать. Не спеши, а то успеешь. |
Re: Функция, обратная к DToS() | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
Я принцип показал Ну на DTOS
------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: Функция, обратная к DToS() | |
---|---|
AleksM Сообщений: 17881 Дата регистрации: 11.11.2003 |
Ну так бы и грил. Но это всё равно что "}" дописать.
------------------ Лучше переесть, чем недоспать. Не спеши, а то успеешь. Исправлено 1 раз(а). Последнее : AleksM, 19.03.07 12:15 |
Re: Функция, обратная к DToS() | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
Ну что бы на будушее знать почему заключающие символы маски не попадают в выражение.
Ну приблизительно как ставить день недели в системных часах винды, тоже свои хитрости есть ------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: Функция, обратная к DToS() | |
---|---|
Goodwin Автор Сообщений: 3539 Откуда: Омск Дата регистрации: 03.05.2006 |
Ну для полной чистоты надо писать
?eval(TRANSFORM(DTOS(DATE())+" ","@R {^9999-99-99}")) |
Re: Функция, обратная к DToS() | |
---|---|
AleksM Сообщений: 17881 Дата регистрации: 11.11.2003 |
Ну эт само-собой ;)
------------------ Лучше переесть, чем недоспать. Не спеши, а то успеешь. |
Re: Функция, обратная к DToS() | |
---|---|
Prudivus Сообщений: 4283 Откуда: Кишинев Дата регистрации: 14.12.2006 |
?CTOD("^"+TRANSFORM(DTOS(DATE()),"@R 9999-99-99"))
Исправлено 1 раз(а). Последнее : Prudivus, 19.03.07 18:27 |
Re: Функция, обратная к DToS() | |
---|---|
AleksM Сообщений: 17881 Дата регистрации: 11.11.2003 |
Я тебе даже больше скажу, т.е. меньше:
------------------ Лучше переесть, чем недоспать. Не спеши, а то успеешь. Исправлено 1 раз(а). Последнее : AleksM, 20.03.07 09:11 |
Re: Функция, обратная к DToS() | |
---|---|
Goodwin Автор Сообщений: 3539 Откуда: Омск Дата регистрации: 03.05.2006 |
Да. ctod() против eval() почти в два раза быстрее работает.
А в 15 байт решение запихать? ;) |
Re: Функция, обратная к DToS() | |
---|---|
Prudivus Сообщений: 4283 Откуда: Кишинев Дата регистрации: 14.12.2006 |
CTOD(TRAN(d,"@R ^9999-99-99"))
только 30, сорри ;) |
Re: Функция, обратная к DToS() | |
---|---|
vlladimir Сообщений: 1 Дата регистрации: 26.04.2007 |
Может немного не по теме, извините если что
Как из поля Datetime вывести в гриде только время? |
Re: Функция, обратная к DToS() | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
TTOC( ,2)
------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: Функция, обратная к DToS() | |
---|---|
korsak Сообщений: 269 Откуда: Киров (Вятка) Дата регистрации: 27.03.2007 |
************************************* proc STOD * STOD() - converts any date string (almost) to a valid date expression * An improvement on the CTOD() date function - much more user friendly. * Xbase has a DTOS() return YYYYMMDD, but no function for converting YYYYMMDD * (Created on a Saturday night after years of difficulty with dates!) * 1994 Computer Applications Company 703-486-2222 Rick Shaddock * Syntax: STOD(<expC>) Returns: MM/DD/YYYY format * Supported formats for <expC> for 03/05/1994 * Mar 15, 94 15 Mar 94 * Mar 15, 1994 15 Mar 1994 3/15/1994 15/3/1994 1994/3/15 * March 15, 94 15 March 94 03/15/94 15/03/94 94/03/15 * March 15, 1994 15 March 1994 03/15/1994 15/03/1994 1994/03/15 * March 15th 94 15th of March 94 3-15-94 15-3-94 1994-3-15 * March 15th 1994 15th of March 1994 3-15-1994 15-3-1994 1994-3-15 * March Fifteenth 94 Fifteenth March 94 03-15-94 15-03-94 94-03-15 * March Fifteenth 1994 Fifteenth of March 03-15-1994 15-03-1994 1994-03-15 * Mid March 94 940315 3.15.94 15.3.94 94.3.15 * Middle March 1994 19940315 3.15.1994 15.3.1994 1994.3.15 * March the 15th, 94 Ides of March 94 03.15.94 15.03.94 94.03.15 * March the 15th, 1994 Ides of March 1994 03.15.1994 15.03.1994 1994.03.15 parameter cDate * Process parameter private cDate, cWait, cMDY, cFormat if !type("cDate")=="C" m.cDate=all2str(m.cDate) endi m.cDate =alltrim(m.cDate) && Remove blanks m.cDate =upper(m.cDate) && Put the date string in all caps m.oDate =m.cDate && original date * Variables m.cWait ='nowait' m.cMDY ='MDY' m.cYear ='' m.cMonth='' m.cDay ='' m.cFormat ='' m.dDate ={ . . } * If blank if empty(m.cDate) or !isdigit(m.cDate) return { . . } endif * Convert all Separators to spaces for ease in trimming and consistency m.cDate =chrtr(m.cDate,'_\-/.,',' ') m.cDate =del_trim(m.cDate) * Special cases - year undetermined m.cDate=mont2num(m.cDate) **Remove spaces m.cDate =del_trim(m.cDate) if occurs(" ",m.cDate)=0 && нет пробелов do case case len(m.cDate) = 8 && 20050301 m.cDate=left(m.cDate,4)+" "+subs(m.cDate,5,2)+" "+subs(m.cDate,7,2) case len(m.cDate) = 4 && 0503 месяц - год m.cDate=left(m.cDate,2)+" "+subs(m.cDate,3,2) endc endi do case case occurs(" ",m.cDate) =1 && месяц-год m.cDay ="1" m.cMonth =u_word(1,m.cDate) m.cYear =u_word(2,m.cDate) case occurs(" ",m.cDate) >1 && с годом m.cDay =u_word(1,m.cDate) m.cMonth =u_word(2,m.cDate) m.cYear =u_word(3,m.cDate) if len(u_word(1,m.cDate))=4 && вид 2005 1 12 m.cDay =u_word(3,m.cDate) m.cYear =u_word(1,m.cDate) endi endc * Diagnostic window * wait window m.cDate +'=' +cFormat &cWait * Construct the date m.cYear=allt(m.cYear) if len(m.cYear)<3 if val(m.cYear)>80 m.cYear= "19"+right("00"+m.cYear,2) else m.cYear= "20"+right("00"+m.cYear,2) endi endi errorinfo=type("cday") m.cDate = m.cDay+"." +m.cMonth +"." +m.cYear * =ww(m.cDate) dDate =ctod(m.cDate) && convert to a date variable * Finish return dDate Исправлено 1 раз(а). Последнее : korsak, 26.04.07 08:22 |
© 2000-2024 Fox Club  |