精华内容
下载资源
问答
  • VB中DateDiff 函数解释

    2019-10-01 07:07:39
    VB中DateDiff 函数使用方法 DateDiff(interval,Date1,Date2[,firstweekofyear[,firstweekofyear]]) 返回一个Variant(long) 的值,表示两个指定日期间的时间间隔数目 interval:设定两个日期之间的期间计算...

    VB中DateDiff 函数使用方法


    DateDiff (interval, Date1 , Date2[,firstweekofyear[,firstweekofyear]])
     返回一个Variant(long) 的值,表示两个指定日期间的时间间隔数目
    interval:设定两个日期之间的期间计算之单位。譬如 >interval="m" 表示计算的单位为月。 >interval 的设定值如:
    yyyy > Year 年
    q Quarter 季
    m Month 月
    d Day 日
    w Weekday 星期
    h Hour 时
    n Minute 分     

    s Second 秒
    Date1 ,Date2:计算期间的两个日期表达式,若 >date1 较早,则两个日期之间的期间结果为正值;若 >date2 较早, 则结果为负值。
    firstweekofyear:设定每周第一天为星期几, 若未设定表示为星期天。 >FW 的设定值例如以下:
    0 使用 >API 的设定值。
    1 星期天
    2 星期一
    3 星期二
    4 星期三
    5 星期四
    6 星期五
    7 星期六
    firstweekofyear:设定一年的第一周, 若未设定则表示一月一日那一周为一年的第一周。 >FY 的设定值例如以下:
    0 使用 >API 的设定值。
    1 一月一日那一周为一年的第一周
    2 至少包含四天的第一周为一年的第一周
    3 包含七天的第一周为一年的第一周
    示比例如以下:
    计算两个日期的相隔月数.
       DiffMonthL = DateDiff("M", DATE_start, DATE_end)


    ========================================================================

    转载于:https://www.cnblogs.com/lcchuguo/p/4067268.html

    展开全文
  • VB中的定时器

    2019-12-14 15:10:35
    效果是,两个Label键闪烁 1、设计窗口布局 2、FROM里的代码段 ...Timer1.Interval = 500 //单位是毫秒 Label2.Tag = “1” Timer2.Interval = 800 End Sub 3、Timer1里的代码段 Private Sub Timer1_Timer() Dim ...

    效果是,两个Label键闪烁
    1、设计窗口布局
    窗口布局
    2、FROM里的代码段
    Private Sub Form_Load()
    Label1.Tag = “1”
    Timer1.Interval = 500 //单位是毫秒
    Label2.Tag = “1”
    Timer2.Interval = 800
    End Sub
    3、Timer1里的代码段
    Private Sub Timer1_Timer()
    Dim ctn As Control
    For Each ctn In Me
    If ctn.Name = “Label1” Then
    ctn.Visible = Not ctn.Visible
    End If
    Next
    End Sub
    4、timer2里的代码段
    Private Sub Timer2_Timer()
    Dim ctn As Control
    For Each ctn In Me
    If ctn.Name = “Label2” Then
    ctn.Visible = Not ctn.Visible //visible为1时,显示,否则不显示。
    End If
    Next
    End Sub

    展开全文
  • VB中关于Timer1计时器的使用

    千次阅读 2019-02-11 09:39:07
    1.设定Timer的计时时间,可以在Form_load设定Timer.Interval=设定时间(单位毫秒),或者在Timer的属性窗口Interval中设定时间 2.当Timer设定的Interval时间到达后,触发timer1_timer子程序 ...

    1.设定Timer的计时时间,可以在Form_load中设定Timer.Interval=设定时间(单位毫秒),或者在Timer的属性窗口Interval中设定时间
    2.当Timer设定的Interval时间到达后,触发timer1_timer子程序

    展开全文
  • 1.添加Age、Fullname字段esproc:A4:我们用T表示序表。T.derive()表示增加字段。这里用age(日期)计算出年龄,作为Age...@ms表示以毫秒为单位)python:import timeimport pandas as pdimport datetimes = time...

    1.添加Age、Fullname字段

    esproc:

    d1c916bf848c41276344d28ca7ea0707.png

    A4:我们用T表示序表。T.derive()表示增加字段。这里用age(日期)计算出年龄,作为Age字段。用NAME,SURNAME得到Fullname。

    A5:计算运算时间(interval:计算时间间隔。@ms表示以毫秒为单位)

    python:

    import time

    import pandas as pd

    import datetime

    s = time.time()

    data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE.txt",sep="t")

    today = datetime.datetime.today().year

    data["Age"] = today-pd.to_datetime(data["BIRTHDAY"]).dt.year

    data["Fullname"]=data["NAME"]+data["SURNAME"]

    print(data)

    e = time.time()

    print(e-s)

    计算出BIETHDAY字段的值(日期)距今天的年数,作为年龄字段。用NAME+SURNAME作为Fullname字段

    结果

    esproc:

    8ff886d2bd6ac370bda13023f915dd4e.png

    python:

    8ff520219b20cd8ae2a50435b6d73f62.png

    a36c63c24e2744718cfb133ada3863b9.png

    2.提取需要的记录或者字段(前3个字段,第3~10条记录)

    esproc:

    c05c4bd87909c41cba2fcb0bc9db09de.png

    A4:T.new()表示新建序表。这里以第1,2,3个字段作为新表的字段。T.A,表示取出序列中包含的行号。

    python:

    import time

    import pandas as pd

    import datetime

    s = time.time()

    data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE.txt",sep="t")

    data = data.iloc[2:10,:3]

    print(data)

    e = time.time()

    print(e-s)

    使用df.iloc[]切片获得3~10条记录,前三个字段(dataframe的字段号和记录号都是从0开始计数的)。

    结果:

    esproc:

    0ea3c94a9571bb19ec01a66b95497874.png

    python:

    72766e31488afe8cd1eef839bb1b562c.png

    5cb2891a10ed269feb5827bd13913ebb.png

    3.筛选符合条件的记录

    esproc:

    0030a902d100c214be634ff0fcf41ad8.png

    A4:T.select()筛选符合条件的记录。这里是筛选STATE=="California"为真的记录

    python:

    import time

    import pandas as pd

    import datetime

    s = time.time()

    data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE.txt",sep="t")

    data = data[data['STATE']=="California"]

    print(data)

    e = time.time()

    print(e-s)

    取出data['STATE']=="California"的记录

    结果:

    esproc:

    8d33453db4955795822800b180976730.png

    python:

    733b926d167752a61775b53d5978c419.png

    a3d3fbf96be0c9a5329c3304ff42fe53.png

    4.计算字段的常用值

    e6729ae2c8a2ca99817a95f53e02581d.png

    A4:T.min()计算字段最小值

    A5:T.max()计算字段最大值

    A6:T.avg()计算字段平均值

    A7:T.sum()计算字段总和

    A8:计算字段中位数。A.median(k:n)函数,参数全省略时,如果序列长度是奇数返回中间位置值;如果序列长度是偶数返回中间两个值的平均值。

    A9:T.variance()计算字段方差。

    python

    s = time.time()

    data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE.txt",sep="t")

    min = data["SALARY"].min()

    max = data["SALARY"].max()

    avg = data["SALARY"].mean()

    sum = data["SALARY"].sum()

    median = data["SALARY"].median()

    var = data["SALARY"].var()

    print(min,max,avg,sum,median,var)

    e = time.time()

    print(e-s)

    df[字段名]表示取得字段。min(),max(),mean(),sum(),median(),var()分别计算最小值,最大值,平均数,总和,中位数,方差。

    结果

    36cf97160232b2dc02465b8658d5117b.png

    5.统计各部门员工的男女人数

    esproc:

    ae8adf762e71aa3ebb1e7ce1a6b6b018.png

    A4:T.groups()表示以DEPT分组,计算GENDER==“M”或GENDER==“F”的值,得到各部门男女员工的数量。

    python

    s = time.time()

    data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE.txt",sep="t")

    group = data.groupby(['DEPT','GENDER']).size()

    print(group)

    e = time.time()

    print(e-s)

    截取GENDER==‘M’或者GENDER==‘F’的切片以DEPT通过goupby()函数得到以DEPT的分组。最后用size()函数得到结果。

    结果:

    esproc:

    43c3a3c9e17a205c8f4bd634c048ff42.png

    python:

    94e9d73a313ef1edb73ffd0d2c589f06.png

    34ee9d90db1e8f5307851636dc196ef7.png

    6.统计男女员工的平均年龄

    esproc:

    9da2982efafc7477f24ef71ffcf7f746.png

    A4:T.groups()用来分组,avg()计算平均值,age()根据日期计算时间间隔。

    python

    s = time.time()

    data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE.txt",sep="t")

    data["Age"] = today-pd.to_datetime(data["BIRTHDAY"]).dt.year

    avg_age = data.groupby('GENDER')['Age'].mean()

    print(avg_age)

    e = time.time()

    print(e-s)

    计算得到Age字段。然后用groupby()函数以GENDER分组,最后通过mean()函数得到平均值。

    结果:

    esproc:

    52996ae6d16969d271026e2b43b88090.png

    python:

    73f1451bc0bd059516fa8de227f78665.png

    6320313c0f7cc4710e9e964ead25f574.png

    7.计算员工薪酬比前一名员工高的最大人数

    esproc:

    bb75412cdb6f90ee2c1d46ba031965af.png

    A4:if(condition,x1,x2)表示如果条件成立,if语句的值为x1,否则值为x2,在这儿计算如果SALARY比前一个员工薪水高的话a=a+1。从而得到A3.(a),其中a随着if语句不断的变化。最后得到一个序列,max()函数得到最大值。

    python

    s = time.time()

    data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE.txt",sep="t")

    a=0 ; m=0

    for i in data['SALARY'].shift(0)>data['SALARY'].shift(1):

    a=0 if i==False else a+1

    m = a if m < a else m

    print(m)

    e = time.time()

    print(e-s)

    df.shift(0)表示当前记录,df.shift(n)表示前面第n条记录,data['SALARY'].shift(0)>data['SALARY'].shift(1) 得到pandas的series结构。循环如果为假(False)表示当前记录小于或等于上一条记录,把a置0,如果为真则加1。m的作用:当m<a时,把a赋值给m,否则m不变,最终得到a的最大值。

    结果:

    762f1c2e133816602c0608ad234313c0.png

    8.每个字段随机设置5-10个缺失值

    esproc:

    66cbe3dcbe6e21a2c0d82f59ccb77d23.png

    A4:T.fno()得到序表的字段数量。

    B4:T.field(f,x)将x序列中的成员依次赋值给A中第F个字段的字段值或者字符串参数F的值。F<0时从后往前排。F越界和不存时不执行

    python:

    s = time.time()

    data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE.txt",sep="t")

    for i in data.columns:

    for j in range(random.randint(5,10)):

    data[i][random.randint(0,500)]=np.nan

    print(data)

    e = time.time()

    print(e-s)

    循环所有的字段,随机循环5~10次,将字段的某个随机值设置成np.nan

    结果:

    afbf765ae50b2fcf2f46ce0be3495a20.png

    9.丢弃缺失值

    esproc:

    683709d5270078ed3ca504ebb0b8ce66.png

    A4:筛选null所在位置为空的记录,即不包含null的记录。用r表示记录,r.array()表示把r中的字段值返回成序列。A.pos()获得序列成员序号。

    python:

    s = time.time()

    data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE_nan.txt",sep="t")

    data = data.dropna()

    print(data)

    e = time.time()

    print(e-s)

    使用dropna()函数得到不包含np.nan的记录

    结果:

    72b1bca6f863b5b49d492d327f21d78a.png

    63ac5c1184fa2b22de1cb720ecd96c7a.png

    fd7d2c6646c3499b00eec63a27533dff.png

    10.第一列用序列直接替换,其他列的缺失值使用其中的一个随机值填补

    esproc:

    e4b436f95c109088d79fab638ca7bd6e.png

    A4:T.field(F,A) 将A序列中的成员依次赋值给T中第F个字段的字段值或者字符串参数F的值。

    B5:筛选字段为null的记录

    B6:差集,得到不为null的记录

    B7:这里需要特别注意一下field()函数,r.field(F)取得记录的第F个字段的字段值或者字符串参数F的值。r.field(F,X) 修改记录r中第F个字段的字段值或者字符串参数F的值为x。A3.select(#${A5}==null)取出A3中某个字段为null的记录序列,用run()函数循环修改该序列中的每条记录。

    python:

    s = time.time()

    data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE_nan.txt",sep="t")

    data['EID']=pd.Series([i for i in range(1,len(data)+1)])

    for col in data.columns:

    nonan_list = list(data[col][~pd.isna(data[col])])

    fill_list = [nonan_list[random.randint(0,len(nonan_list))] for i in range(len(data[col][pd.isna(data[col])]))]

    data[col][pd.isna(data[col])]=fill_list

    e = time.time()

    print(e-s)

    将字段名为EID的值修改为递增的序列。这里用pd.Series()生成。

    循环所有字段。df[col][pd.isna(df)]得到df中包含nan的值。~表示非。nonan_list表示当前列不包含nan的所有值组成的list。fill_list表示随机生成的要填充nan的值的list。

    将fill_list中的值赋值给包含nan的记录。

    结果:

    esproc:

    9dac5e3337bc73eb129c43b8efaa21b3.png

    python

    06a1b37917aac5835d5bd765c2876de1.png

    1f46b25a0d3009a5e62457e8eb7c7f05.png

    11.EID字段用序列直接替换,SALARY字段用均值填补缺失值,其他字段的缺失值使用其中的一个随机值填补

    esproc:

    bf618d3cb0a2938a3106d7807c2d1abc.png

    上例中,B5,B6的运算会导致把序列遍历两遍,这里进行了改进

    B5:A.group(xi) 将序列/排列按照一个或多个字段/表达式进行等值分组,结果为组集构成的序列。这里是将序表分成两组,第一组为该字段不包含null的,第二组为包含null的。

    B6:取得该字段去重后的字段值

    B7:这里需要特别注意一下field()函数,r.field(F)取得记录的第F个字段的字段值或者字符串参数F的值。r.field(F,X) 修改记录r中第F个字段的字段值或者字符串参数F的值为x。r.run(xi,…),针对记录r计算表达式x,最后返回记录r。此函数通常用于修改r的字段值

    B9:和B7的原理一样,利用field()函数修改SALARY的字段值为A8中计算出来的平均值。

    python:

    s = time.time()

    data = pd.read_csv("C:/Users/Sean/Desktop/esproc_vs_python/EMPLOYEE_nan.txt",sep="t")

    data['EID']=pd.Series([i for i in range(1,len(data)+1)])

    for col in list(data.columns)[1:-1]:

    nonan_list = list(data[col][~pd.isna(data[col])])

    fill_list = [nonan_list[random.randint(0,len(nonan_list))] for i in range(len(data[col][pd.isna(data[col])]))]

    data[col][pd.isna(data[col])]=fill_list

    data['SALARY'].fillna(data['SALARY'].mean(),inplace=True)

    print(data.loc[180:190])

    print(e-s)

    将字段名为EID的值修改为递增的序列。这里用pd.Series()生成。

    循环所有字段第一到倒数第二个字段。df[col][pd.isna(df)]得到df中包含nan的值。~表示非。nonan_list表示当前列不包含nan的所有值组成的list。fill_list表示随机生成的要填充nan的值的list。

    将fill_list中的值赋值给包含nan的记录。

    df.fillna(df[s].mean())表示用字段s的平均值填充缺失值。

    结果:

    esproc:

    ec6d57167fd513df4149d4e43ae77da2.png

    python

    800d2b8572f1b459bd631adf6a71d6dc.png

    61d7f44da05c2e6876aa65b0a9304b58.png

    小结:本节我们用11个例子对数据进行简单的计算,esproc和python都用到了比较多的函数,还用到了一些相对复杂的组合应用,这就不得不说esproc现阶段的一个缺点了,查阅资料和使用案例相对于python太少了,原因就是使用者太少。但是在描述效率和执行效率方面,esproc的优势太明显了,因此我们要多使用esproc提高工作效率,同时也可以完善esproc的缺点。esproc中的函数功能很强大,需要不断的使用,来充分理解函数的用法,达到熟能生巧最终精通的地步。

    EMPLOYEE.txt
    EMPLOYEE_nan.txt

    展开全文
  • 如何用VB在窗体实现闪烁文字

    千次阅读 2013-08-26 18:12:32
    闪烁的文字可以在屏幕上起到明显的提示作用。通过使用VB数据库编程的Timer控件,程序员可以轻松的在窗体上实现闪烁文字的效果。本文将演示如何为Label...Interval(间隔)属性用来确定Timer控件多久触发一次,其单位
  • VB Timer时钟的准确性

    千次阅读 2008-10-02 14:16:00
    Timer控件的使用 VB编程过程,通过引发Timer事件,Timer控件可以有规律地间隔一段时间执行一次代码。Interval属性是Timer控件最重要的一个属性,它以千分之一秒为单位指定Timer事件之间的间隔,理论上可以认为...
  • vb.net 不会无响应的延时函数delay

    千次阅读 2016-02-24 11:26:24
    用系统Threading.Thread.Sleep函数延时过程会造成程序无响应,特别是最小化窗口后,经常无法正常激活窗口,下面这个就好多了。 参数单位为毫秒  Public Shared Sub delay(ByVal Interval As Integer)   Dim __...
  • 'GetPixel用于取得场景(这里是整个屏幕)某点的颜色值 Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long 'SetPixel用于设置...
  • 定时器控件的使用

    千次阅读 2010-10-16 10:42:00
    这里我主要是就VB中的Timer控件来介绍下。Timer控件的最重要的一个属性就是时间间隔属性(Interval)。它是以ms(微秒)为单位,范围0~65535。  这里有个时间的例子,如下:  主要用到的控件有...

空空如也

空空如也

1 2
收藏数 27
精华内容 10
关键字:

vb中interval单位