string sdt
sdt='2009-01-01 15:23:11'//给日期字符串赋值
if not isdate(sdt) then return
datetime dt
dt=datetime(date(left(sdt,10)),time(right(sdt,8)))
使用DaysAfter(datetime1,datetime2)
得出的结果就是相关多少天,不过好像只支持date变量,你可以转化一下
DaysAfter(date(datetime1),date(datetime2))
我在网上找到的一种方法:
string filename= "C:\powerbuilder\PbApi\WinApitxt "
ulong hfile
long rtn
WIN32_FIND_DATA lpFindFileData
SYSTEMTIME lpSystemTime
filetime lpcreate
filetime lpaccess
filetime lpwrite
FILETIME lpFileTime
FindFirstFile(filename,lpFindFileData)
lpFileTime = lpFindFileDatacreationtime
rtn = FileTimeToSystemTime(lpFileTime,lpSystemTime)
Messagebox( "creationtime ", string(lpSystemTimewyear)+ "年 "+string(lpSystemTimewmonth)+ "月 "+string(lpSystemTimewday)+ "日 ")
相关结构:
$PBExportHeader$win32_find_datasrs
global type WIN32_FIND_DATA from structure
unsignedlong fileattributes
filetime creationtime
filetime lastaccesstime
filetime lastwritetime
unsignedlong filesizehigh
unsignedlong filesizelow
unsignedlong reserved0
unsignedlong reserved1
character filename[260]
character alternatefilename[14]
end type
$PBExportHeader$filetimesrs
global type FILETIME from structure
ulong dwLowDateTime
ulong dwHighDateTime
end type
$PBExportHeader$systemtimesrs
global type SYSTEMTIME from structure
uint wYear
uint wMonth
uint wDayOfWeek
uint wDay
uint wHour
uint wMinute
uint wSecond
uint wMilliseconds
end type
函数定义
FUNCTION ulong FileTimeToSystemTime(ref FILETIME lpFileTime,ref SYSTEMTIME lpSystemTime) LIBRARY "kernel32dll "
FUNCTION ulong FindFirstFile(ref string lpFileName,ref WIN32_FIND_DATA lpFindFileData) LIBRARY "kernel32dll " ALIAS FOR "FindFirstFileA "
但是,运行时总是提示下面几行有问题:
FILETIME lpFileTime
FindFirstFile(filename,lpFindFileData)
lpFileTime = lpFindFileDatacreationtime
rtn = FileTimeToSystemTime(lpFileTime,lpSystemTime)
建立一个userobject,命名为n_cst_liveupdate
然后对该对象edit source ,将下面那些内容复制替换掉里面的内容,然后保存
n_cst_liveupdate是一个取(和设置)本地文件最后修改日期的自定义对象
问题出在什么地方,是否还有其它好的办法,请各位多多指教
用API
FUNCTION ulong GetFileTime(ulong hFile,ref FILETIME lpCreationTime,ref FILETIME lpLastAccessTime,ref FILETIME lpLastWriteTime) LIBRARY "kernel32dll"
filetime是个结构
Type FILETIME from structure
Long dwLowDateTime
Long dwHighDateTime
End Type
参数表
参数 类型及说明
hFile Long,文件的句柄
lpCreationTime FILETIME,用于装载文件的创建时间
lpLastAccessTime FILETIME,用于装载文件上一次访问的时间(FAT文件系统不支持这一特性)
lpLastWriteTime FILETIME,用于装载文件上一次修改的时间
注:
如果不需要特定的信息,那么lpCreationTime,lpLastAccessTime,lpLastWriteTime都可以设置为零。这个函数返回的文件时间采用UTC格式
PB参考手册上面有详解的需要了解一下几个知识:
第一,String类型与DateTime类型的转换:DateTime函数有两个参数,一个是日期(String类型),一个是时间(也是String类型),不能缺少任一个参数,否则转换的会是乱码,Messagebox查看是问号;
第二,日期类型比较可以使用DaysAfter(Start_Date,End_Date)函数,如果第一个参数大于第二个返回负数,否则返回值大于等于零;如果是日期相等,就可以使用Hour(),Minute(),Second()函数取时间类型参数的相应数据,组合一下,比较就可以了
第一个问题:
dw_1setfilter("yxrq>datetime(today(),now())")
dw_1filter()
第二个问题没听懂,请补充说明。
-------------------------------------
dw_1setfilter("(yxrq>datetime(today(),now())) and (kcsl>xxsl) and (zt='在库')")
dw_1filter()
数据窗口名 dw_a
数据窗口列名 a_date
筛选语句应为
如取时间类型:
datetime Ldt_date
Ldt_date=dw_aobjecta_date[行号]
如取字符类型:
string Ls_date
Ls_date="2013/12/24"或者Ls_date=string(date(Ldt_date),'yyyy/mm/dd')
dw_asetfilter("a_date>'"+Ls_date+"'")
dw_afilter()
以上就是关于PB中如何把字符串转换成日期型全部的内容,包括:PB中如何把字符串转换成日期型、PB问题,怎样实现两个datetime类型的减法,结果得到相差多少天就行!!!(急)、关于怎么获取文件修改日期的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)