int clip_ODBC_IN_DATE(ClipMachine* mp){ char* str = _clip_parc(mp,1); if(str){ _clip_retdc(mp,*((short*)str),*((short*)str+1),*((short*)str+2)); } return 0; }
int clip_DATE(ClipMachine * ClipMachineMemory) { int yy, mm, dd; #ifdef _WIN32 SYSTEMTIME st; GetLocalTime(&st); yy = st.wYear; mm = st.wMonth; dd = st.wDay; #else struct tm *sysTime; sysTime = _clip_sysdate(); yy = sysTime->tm_year + 1900; mm = sysTime->tm_mon + 1; dd = sysTime->tm_mday; free(sysTime); #endif if (_clip_parinfo(ClipMachineMemory, 1) == NUMERIC_type_of_ClipVarType) yy = _clip_parni(ClipMachineMemory, 1); if (_clip_parinfo(ClipMachineMemory, 2) == NUMERIC_type_of_ClipVarType) mm = _clip_parni(ClipMachineMemory, 2); if (_clip_parinfo(ClipMachineMemory, 3) == NUMERIC_type_of_ClipVarType) dd = _clip_parni(ClipMachineMemory, 3); _clip_retdc(ClipMachineMemory, yy, mm, dd); return 0; }
int clip_PG_IN_DATE(ClipMachine* mp){ PG_ROWSET* rowset = (PG_ROWSET*)_clip_fetch_c_item( mp,_clip_parni(mp,1),_C_ITEM_TYPE_SQL); char* date; int len; if(!rowset){ _clip_trap_err(mp,0,0,0,subsys,ER_NOROWSET,er_norowset); return 1; } if(rowset->binary){ date = _clip_parcl(mp,2,&len); if(date){ _clip_retdj(mp,*((int*)date)+2451545); // 2451545 - julian date } // for 01/01/2000 } else { int m,d,y; date = _clip_parc(mp,2); if(date){ y = atoi(date); m = atoi(date+5); d = atoi(date+8); _clip_retdc(mp,y,m,d); } else { _clip_retdj(mp,0); } } return 0; }
int clip_GTK_CALENDARGETDATE(ClipMachine * ClipMachineMemory) { C_widget *ccal = _fetch_cw_arg(ClipMachineMemory); guint year, month, day; CHECKCWID(ccal, GTK_IS_CALENDAR); gtk_calendar_get_date(GTK_CALENDAR(ccal->widget), &year, &month, &day); _clip_retdc(ClipMachineMemory, year, month + 1, day); return 0; err: return 1; }
int clip_MS_IN_DATE(ClipMachine * mp) { char *date = _clip_parc(mp, 1); int day, mon, year; if (date) { date[10] = 0; day = atoi(&date[8]); date[7] = 0; mon = atoi(&date[5]); date[4] = 0; year = atoi(date); _clip_retdc(mp, year, mon, day); } return 0; }
int clip_MS_IN_TIMESTAMP(ClipMachine * mp) { char *date = _clip_parc(mp, 1); int day, mon, year; if (date) { date[8] = 0; day = atoi(&date[6]); date[6] = 0; mon = atoi(&date[4]); date[4] = 0; year = atoi(date); _clip_retdc(mp, year, mon, day); } return 0; }
int clip_EOY(ClipMachine * ClipMachineMemory) { int dd, mm, yy, ww; struct tm *sysTime; int numpar = _clip_parinfo(ClipMachineMemory, 0); _clip_pardc(ClipMachineMemory, 1, &yy, &mm, &dd, &ww); if (numpar == 0) { sysTime = _clip_sysdate(); yy = sysTime->tm_year + 1900; mm = sysTime->tm_mon + 1; dd = sysTime->tm_mday; free(sysTime); } _clip_retdc(ClipMachineMemory, yy, 12, 31); return 0; }
int clip_PG_IN_ABSTIME(ClipMachine* mp){ PG_ROWSET* rowset = (PG_ROWSET*)_clip_fetch_c_item( mp,_clip_parni(mp,1),_C_ITEM_TYPE_SQL); char* date; int len; struct tm* time; if(!rowset){ _clip_trap_err(mp,0,0,0,subsys,ER_NOROWSET,er_norowset); return 1; } if(rowset->binary){ date = _clip_parcl(mp,2,&len); time = gmtime((time_t*)date); _clip_retdc(mp,time->tm_year+1900,time->tm_mon+1,time->tm_mday); } else { date = _clip_parc(mp,2); // _pg_in_date(mp,rowset->conn->datestyle,rowset->conn->textdate,date); } return 0; }