第9章 处理字符串和日期时间 Visual Basic 程序设计教程
本章主要介绍: 字符类型和字符数组 操作字符串 查找和替换字符串 处理日期和时间 使用VB的日历控件MonthView Visual Basic程序设计教程
9.1 概述 ·在大量的应用系统中,文本是表达和交互数 据的基本类型,而文本的计算机内部表示就 是字符数据类型 ·学会运用VB提供的内部函数,包括比较字符 串和搜索字符串,以及在字符串和其他数据 类型之间的转换等 9.1 概述 Visual Basic程序设计教程
·往往应用程序中需要有日期和时间的相关信息,这就涉及到程序如何表达以及如何使用 合适的格式表达程序中对日期时间的处理要 求 Visual Basic程序设计教程
9.2 一个简单的字符加密处理程序 · 【例9-1】一个简单的示例程序,把给出的字符进行加密,然后再解密,程序界面如图所示: 9.2 一个简单的字符加密处理程序 · 【例9-1】一个简单的示例程序,把给出的字符进行加密,然后再解密,程序界面如图所示: Visual Basic程序设计教程
Visual Basic程序设计教程 Dim Str1 As String, Str2 As String Option Compare Text Private Sub CmdEncrypt_Click() Dim N As Byte, Count As Integer Text2.Text = "" N = Len(Text1.Text) For Count = 1 To N Str1 = Mid(Text1.Text, Count, 1) If (Count Mod 2) = 0 Then Text2.Text = Text2.Text & ChrW(AscW(Str1) + 2) Else Text2.Text = Text2.Text & ChrW(AscW(Str1) + 1) End If Next End Sub Private Sub Form_Load() Label1.Caption = "请输入:" Label2.Caption = "加密后输出:" Label3.Caption = "解密后输出" Text1.Text = "" Text2.Text = "" Text3.Text = "" End Sub Visual Basic程序设计教程
Private Sub CmdUncoil_Click() Dim N As Byte, Count As Integer Text3.Text = "" N = Len(Text2.Text) For Count = 1 To N Str1 = Mid(Text2.Text, Count, 1) If Count Mod 2 = 0 Then Text3.Text = Text3.Text & ChrW(AscW(Str1) - 2) Else Text3.Text = Text3.Text & ChrW(AscW(Str1) - 1) End If Next End Sub Visual Basic程序设计教程
9.3 字符类型和字符数组 本节在小结前述章节的有关字符数据类型的基础上,进一步介绍有关字符运算、字符数组和实现。 各种字符操作和字符转换、类型转换的VB函数。 9.3 字符类型和字符数组 Visual Basic程序设计教程
9.3.1 字符和字符串 1.字符数据类型 ·VB的字符类型数据支持两种格式,一种是定长,另一种是不定长。如: Dim Str1 As String Dim Str2 As String * 长度数值 ·在VB中,变长字符串最多可包含大约20亿(2^31)个字符,而定长字符串可包含1到大约 64K(2^16)个字符。 Visual Basic程序设计教程
(1)如果连接运算符的两边都是字符型数据,这两个符号都可以使用。 2.字符连接运算 ·VB使用符号“&” 和“+”连接字符串形成更大的字符串。 (1)如果连接运算符的两边都是字符型数据,这两个符号都可以使用。 (2)如果把不同类型的数据连接为字符串,使用连接符“&”。建议使用“&”连接符,可以避免出现类型不匹配的错误。例: Str1 = “Hell”+ “ World” Str1中的字符为 “Hello World” Str1 =”Hello” + 2 ‘ 运行时产生,类型不匹配错误,应该使用& 代替+ Visual Basic程序设计教程
· 理解一个字符“大于”、“小于”或者“等 于”的含义,是考虑字符在字符表中位置后决 定的。它们按照ASCII码对字符进行排序,然后 9.3.2 比较字符 1.使用比较运算符 · 理解一个字符“大于”、“小于”或者“等 于”的含义,是考虑字符在字符表中位置后决 定的。它们按照ASCII码对字符进行排序,然后 比较它们的代码值的大小决定比较结果。 Visual Basic程序设计教程
Visual Basic程序设计教程 Dim Str1 As String, Str2 As String Str1 = "A": Str2 = "B" Print Str1 = Str2 ‘ 比较结果为False,因为字符 “A”和“B”不相等 Print Str1 <= Str2 ‘ 比较结果为True,因为字符 “A”小于“B”成立 Str1 = "abc": Srt2 = "VB6" Print Str1 > Str2 ‘ 比较结果为True,因为 “abc”>“VB6”成立 Print Str1 < Str2 ‘ 比较结果为False,因为 “abc”<“VB6”不成立 Visual Basic程序设计教程
2.StrComp函数 ·函数StrComp用来比较两个字符串,并返回比较结果。使用格式为:StrComp(String1, String2[, CompareType]) ·比较结果的返回值如下 : 条件 StrComp 返回值 string1 小于 string2 -1 string1 等于 string2 string1 大于 string2 1 string1 或 string 2为 Null Null Visual Basic程序设计教程
CompareType参数意义如下表所示: 常数 值 描述 vbUseCompareOption -1 使用Option Compare语句设置执行一个比较 vbBinaryCompare 执行一个二进制比较。 vbTextCompare 1 执行一个按照原文的比较。 vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库信息的比较。 Visual Basic程序设计教程
·使用格式:String(Number, Character) 9.3.3 String函数和Str函数 1.String函数 ·使用格式:String(Number, Character) ·函数执行后按创建长度返回重复字符的字符串,其中,Number给出所创建的字符串长度。参数Character是一个字符(或Ascii码)或字符串表达式,但只使用它的第一个字符创建新的字符串,如果Character包含了Null就返回Null。 Visual Basic程序设计教程
·例:Dim str1 as string, str2 as string ,str3 Str1 = String(5, “*”) ‘ 返回 "*****"。 Str2 = String(5, 42) ' ASCII 码42的字符为*,返回 "*****"。 Str3 = String(10, “ABC” + Null) ‘ 返 回 "Null"。 Visual Basic程序设计教程
·函数Str把一个数值转换为Variant (String)类型。它的使用格式为:Str(Number) ·例: Str1 = Str$(123.5) Str2 = Str(-123.5) Print Str1,Str2 ‘ 输出 123.5,-123.5 注意字符串前有一个空格和符号位 Visual Basic程序设计教程
字符数组就是数组中的元素都是字符串的数组,使用String定义字符数组。有关字符串数组操作的三个函数如下: 9.3.4 字符数组 字符数组就是数组中的元素都是字符串的数组,使用String定义字符数组。有关字符串数组操作的三个函数如下: 1.Join函数 ·Join函数连接某个数组中的多个子字符串而创建一个新的字符串。函数格式为: Join(List[, Delimiter]) Visual Basic程序设计教程
其中参数List指出被连接的字符数组Delimiter是可选参数,在返回字符串中用于分隔子字符串的字符。默认使用空格" "来分隔子字符串。如果Delimiter是零长度字符串"",所有元素项都连接在一起,中间没有分隔符。 Visual Basic程序设计教程
Dim StrA(2) As String, Str1 As String StrA(0) = "欢迎来到" ·例如: Dim StrA(2) As String, Str1 As String StrA(0) = "欢迎来到" StrA(1) = "Visual " StrA(2) = "Basic 6" Str1 = Join(StrA) ‘连接字符数组StrA中三个字符串 Visual Basic程序设计教程
·2.Split函数 ·给定一个字符串,可以使用Split函数创建一个一维数组,它包含指定数目的子字符串。函数格式为:Split( StringExpress[, Delimiter[, Count[, CompareType]]]) StringExpress 必需参数,字符串表达式。如果表达式的长度为零即为””,Split返回一个空数组,即没有元素和数据的数组 Delimiter 可选参数,标识子字符串边界字符。默认空格字符" "为分隔符。如果该参数是空字符“”,则返回数组仅包含一个元素,即StringExpress字符串 Count 可选参数,指定返回的子字符串数,–1表示返回所有的子字符串 CompareType 可选参数,用数字值表示判别子字符串时使用的比较方式。意义同表9.1 Visual Basic程序设计教程
【例9-2】使用Split函数。程序执行后的显示如图所示。程序代码如下: Private Sub Form_Load() Dim x() As String Dim y As String, n As Integer Show y = "Welcome To Visual Basic 6 !" x = Split(y) For n = LBound(x) To UBound(x) Print " " & x(n) Next End Sub Visual Basic程序设计教程
从一个已知数组中搜索指定的字符串,可以使用Filter函数 ,ilter函数的格式为: Filter(StringsArray, Value[, Include[, CompareType]]) StringsArray 必需参数,被执行搜索的一维字符串数组 Value 必需参数,要搜索的字符串 Include 可选参数,Boolean值。True返回的是包含 Value子字符串的数组子集。False则返回的是 不包含Value子字符串的数组子集 CompareType 可选的数字值,表示所使用的比较类型,意 义同表9.1 Visual Basic程序设计教程
【例9-3】请从数组A中选出包 括“VB” 和不包括 “VB” 的元 素。 程序执行后的显示如图所示。 Visual Basic程序设计教程
Visual Basic程序设计教程 Private Sub Form_Load() Show Dim A(6) As String, B() As String, C() As String A(0) = "C": A(1) = "VB6": A(2) = "C++" A(3) = "Jave": A(4) = "VB5": A(5) = "MS.Net" Print "数组 A 中所有的字符串元素有:" Call Prt(A) B() = Filter(A, "VB") Print "数组A中包含有VB字符的元素有:" Call Prt(B) C() = Filter(A, "VB", False) Print "数组A中不包含VB字符的元素有:" Call Prt(C) End Sub Private Sub Prt(m() As String) For n = 0 To UBound(m) Print " " & m(n) Next Print End Sub Visual Basic程序设计教程
9.4 操作字符串 本节给出VB处理字符串的常用操作,如取单个字符、取其中指定的字符、去除字符串中的空格和转换函数。 9.4 操作字符串 Visual Basic程序设计教程
9.4.1 Like运算符 Visual Basic程序设计教程 · 比较运算符Like用于比较字符串。Like返回一个逻辑值:True表示被比较的两个字符串相匹配,False表示不匹配。使用格式为:Result = String1 Like Pattern · VB根据模式匹配可以使用通配符来匹配字符串。也就是说使用Windows中的?、*和#三个匹配符:?表示任何单一字符,*表示零个或多个字 Visual Basic程序设计教程
*表示零个或多个字符,#表示任何一个数字 (0–9)。例如有Str1= “Hello World”,则表达式 Str1 Like “Hello World” Str1 Like “Hello* ” Str1 Like “Hello?????? ” 返回的结果为都为True。 Visual Basic程序设计教程
9.4.2 使用Mid操作字符串中的字符 1.Mid函数 操作字符串中的单个或者多个字符,一般情况下使用Mid函数或者Mid语句。关键字Mid在VB中既是函数也是语句 。 1.Mid函数 Mid函数的格式如下:Mid(String1, Start[, Length]) 参数String1是被操作的字符串,Start为一个数字,指示从String1中的字符起始位置,Length是可选参数,指示要返回的字符数,如果不指定则从Start开始往后的所有字符。例如: Mid(“Hello”, 2,1) 返回字符e Visual Basic程序设计教程
2.Mid语句 Mid是作为语句使用,Mid出现在赋值号的左边,格式 为:Mid(String1,Start[ , Length])= String2 用String2字符串代替String1从Start位置开始的字 符,可选参数Length为替换的长度。注意,字符串 String2的长度总是小于等于Length。假设我们已经定 义了MyStr = "Visual Basic",则: Mid(Str1, 8) = "C++ " 执行的结果使得Str1中的字符串为“Visual C++ ”(包括后面的两个空格)。 Visual Basic程序设计教程
9.4.3 使用Left、Right和InStr操作字符串 例如: Str1 = “Visual Basic” Str2 = Left(Str1,6) 2.Right函数 使用Right函数选择字符串的右边部分。例如: Str1 = “Visual Basic” Str2 = Rightt(Str1,5) Visual Basic程序设计教程
3.InStr函数 使用格式为:InStr([Start, ]String1, String2) 可选参数Start为开始进行搜索的位置,默认为1表示从头开始。String1为基字符串,String2为搜索字符串,InStr在String1中搜索是否包含String2字符串。返回结果为数字,0表示没有找到,非0表示返回String2在String1中出现的第一个起始位置 假设Str1=”Visual Basic”,Str2=”Basic”,则执行语句: InStr(Str1,Str2) 返回的结果为8,表示“Basic”在“Visual Basic”中的位置为8。 Visual Basic程序设计教程
例:·Dim MyString, TrimString 9.4.4 删除多余的空格 使用LTrim、RTrim与Trim函数得到一个字符串的拷贝,删除前导空格 (LTrim)、删除尾随空格 (RTrim)。Trim函数将两头空格全部去除,但不删除中间的空格。 例:·Dim MyString, TrimString ·MyString = " VB6 " ·TrimString = LTrim(MyString) ' TrimString = "VB6 " ·TrimString = RTrim(MyString) ' TrimString = " VB6" ·TrimString = Trim(MyString) ' TrimString = "VB6" Visual Basic程序设计教程
函数Asc是取一个字符的ASCII码的函数; Asc函数对单个的字符计算,如果给出的字符多于一个,它计算第一个字符的ASCII值。 9.4.5 转换函数 1.Asc和Chr 函数Asc是取一个字符的ASCII码的函数; Asc函数对单个的字符计算,如果给出的字符多于一个,它计算第一个字符的ASCII值。 例如:Asc(”a”) ‘得到的值为97 Chr是Asc的逆函数,它将一个数值转换为对应的字符,例如 Chr(97)返回的就是字母a。Chr(13)和Chr(10)就分别代表回车 和换行。 Visual Basic程序设计教程
函数UCase和LCase分别将字符串的字母转换为大写或小写。它们的使用方法比较简单: UCase(StringExpress) 2.转换大小写 函数UCase和LCase分别将字符串的字母转换为大写或小写。它们的使用方法比较简单: UCase(StringExpress) LCase(StringExpress) 其中,StringExpress可以是字符串或者是字符串表达式。例如Str1 = "Visual Basic 6",则: StrResult = UCase(Str1) ‘ StrResult = ”VISUAL BASIC 6” StrResult = LCase(Str1) ‘ StrResult = “visual basic 6” Visual Basic程序设计教程
3.IsNumberic和Val IsNumeric判断一个字符串是否可以被完整地转换为数字,例如: Print IsNumeric(“123.456”) ‘执行后输出为True, Print IsNumeric("123A.456") ‘执行后的输出则为False。 其他的判断类型的函数还有IsStrIsArray判断变量是否为一个数组,IsEmpty 函数判断变量是否已经初始化,IsError函数判断表达式是否为一个错误值。IsNull函数判断表达式是否不包含任何有效数据 (Null),IsObject函数判断标示符是否表示对象变量等,它们返回的都是布尔值。 Visual Basic程序设计教程
Val的函数的使用格式为: Val(StringExpress) 把字符串表达式StringExpress转换为数字,按以 下规则: 数点),则返回一个转换的数字值。 (2)如果StringExpress中的数符含有空格,忽 略空格。 Visual Basic程序设计教程
(3)如果StringExpress含有数字和字母等其他符号,只转换最前 面的数字部分。 例:MyValue = Val(“2457”) ‘ 返回 2457。 MyValue = Val(“ 2 45 7”)‘ 返回 2457。 MyValue = Val("24 and 57") ' 返回 24。 Visual Basic程序设计教程
Hex和Oct是将一个数值型或字符型表达式转换为十六进制和八进制数。例如: Print Hex(123) Print Oct("123") 分别输出十六进制数7B和八进制数173 Visual Basic程序设计教程
9.4.6 其它类型转换函数 Visual Basic程序设计教程 函数 返回类型 Expression 参数范围 CBool 9.4.6 其它类型转换函数 函数 返回类型 Expression 参数范围 CBool Boolean 任何有效的字符串或数值表达式。 CByte Byte 0 至 255。 CCur Currency -922,337,203,685,477.5808至922,337,203,685,477.5807。 CDate Date 任何有效的日期表达式,如#05-12-31#。 CDbl Double 负数从-1.79769313486232E308至 -4.94065645841247E-324;正数从4.94065645841247E-324至1.79769313486232E308。 CDec Decimal 零变比数值,即无小数位的数值为: +/-79,228,162,514,264,337,593,543,950,335。 对于 28 位小数的数值,范围则为:+/-7.9228162514264337593543950335; 最小的可能非零值是 0.0000000000000000000000000001。 CInt Integer -32,768 至 32,767,小数部分四舍五入。 CLng Long -2,147,483,648 至 2,147,483,647,小数部分四舍五入。 CSng Single 负数为 -3.402823E38 至 -1.401298E-45; 正数为 1.401298E-45 至 3.402823E38。 CStr String 依据 Expression 参数返回 Cstr。 CVar Variant 若为数值,则范围与Double相同;若为非数值则范围与String 相同。 Visual Basic程序设计教程
Format(Expression[, format]) 其中,表达式Expression可以为任何有效表达式,而可选参数Format为指定的格式表达式。格式可以是VB预先定义的,也可以是用户定义的。可使用VB预定义名字来指定这些格式,如表9.3所示。数字格式可以由用户指定,如表9.4所示。格式名总是用双引号""括起来。 Visual Basic程序设计教程
例: Num1 = 123456789.34567 Print Format(Num1, “Currency”) ‘显示 ¥123,456,789.35 Print Format(0.154, "Percent") '显示15.4% Print Format(1, "On/Off") '显示 On Format(8315.4, “00000.00”) '显示08315.40 Format(8315.4, “#####.##”) '显示8315.4 Format(8315.4,“##,##0.00”) '显示8,315.40 Format(315.4,“$##0.00”) '显示 $315.40 Visual Basic程序设计教程
函数执行后返回一个Long型值,指示字符串内字符的数目,或是存储一变量所需的字节数。使用格式为:Len(string | varname) 9.4.8 Len函数和Space函数 1.Len函数 函数执行后返回一个Long型值,指示字符串内字符的数目,或是存储一变量所需的字节数。使用格式为:Len(string | varname) 例: dim x as string x=“abcd” print len(x) ‘显示4 dim x as integer x=12345 print len(x) ‘显示2 Visual Basic程序设计教程
执行Space函数返回特定数目空格。使用格式为: Space(number) 其中所必须的number参数为字符串中想要的空格数。例如: Dim MyString MyString = Space(10) ' 返回 10 个空格的字符串。 MyString = "Hello" & Space(10) & "World" ' 将 10 个空格插入两个字符串中间。 Visual Basic程序设计教程
字处理器中,字符的查找和替换是基本功能。运用前面介绍过的一些字符处理函数,可以实现对字符串中的指定的子字符串进行查找和替换操作,例如使用InStr,使用Mid函数和Mid语句等。VB还提供了一个函数Replace实现这个功能。 ·Replace函数返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替换发生的次数也可以指定。使用格式为: 9.5 查找和替换字符串 Visual Basic程序设计教程
Replace(Expression, Find, Replacewith[, Start[, Count]]) ·函数参数Expression为字符串表达式,其中包含要被替换的子字符串。Find是指定要搜索的子字符串,Replacewith用来替换的子字符串。Start确定在Express子字符串搜索的开始位置,默认从1开始。Count为进行替换的次数,默认是–1,它表明进行所有可能的替换。可以根据Replace函数的返回值判断查找和替换操作的结果。返回值如表9.5所示。 Visual Basic程序设计教程
【例9-4】用一个文本框作为简单的字编辑器,在其中输入一段有关电 脑编程的文字,然后用 查找替换的方法,将文 本框中的“电脑”全部 替换为“计算机”。 程序界面如图所示 Visual Basic程序设计教程
9.6 处理日期和时间 【例9-5】使用VB的函数处理日期和时间的示例。 Visual Basic程序设计教程 9.6 处理日期和时间 【例9-5】使用VB的函数处理日期和时间的示例。 Private Sub Form_Load() Label1.Caption = “VB的日期和时间格式” List1.Additem "当前的日期和时间:" & Now List1.Additem "今天是:" & Date List1.Additem "今天是:" & Day(Date) & "号" List1.Additem "今天是:一周的第" & Weekday(Date) & "天" List1.Additem "今天是:" & Weekdayname(Weekday((Date))) List1.Additem "本月是:" & Monthname(Month((Date))) List1.Additem "今年是:" & Year(Date) End Sub Visual Basic程序设计教程
Dim Mydate As Date‘ 定义MyDate为日期型变量 Mydate = #2005-11-14# ‘ 给MyDate赋值 VB使用IsDate 函数指出一个表达式是否可以转换 成日期。使用格式为: IsDate(Expression) Visual Basic程序设计教程
参数Expression可以是一个日期表达式或字符串表达式。函数返回True表示可以实现转换,False表示不能转换。例如: IsDate(#1:01:01 AM#) ‘返回True IsDate(1) ’返回False Visual Basic程序设计教程
Date函数。返回包含系统日期的Date型数据。 Day () 函数。返回一个月中的某一日。 2.取当前日期信息 Now函数。返回系统当前的日期与时间。 Date函数。返回包含系统日期的Date型数据。 Day () 函数。返回一个月中的某一日。 Weekday()函数。返回一个整数,代表某个日期是一周中的第几天。 Weekdayname()函数。返回一个字符串,表示一星期中的某天。 Month()函数。返回一年中1到12之间的某一月。 Year()函数。返回包含表示年份的整数。 Visual Basic程序设计教程
赋值号的右边NewData为新设置的日期数据。 例如: Mydate = #2005-11-14#, Date = Mydate 3.设置系统日期 使用date语句,格式为: Date = NewDate 赋值号的右边NewData为新设置的日期数据。 例如: Mydate = #2005-11-14#, Date = Mydate Visual Basic程序设计教程
执行DateSerial函数将返回包含指定的年、 月、日的日期数据。使用格式为: DateSerial(Year, Month, Day) 5.DateValue 函数 执行Datavalue函数将返回一个日期值,使用 格式为: DateValue(Date) 其中参数Date通常是字符串表达式或其他表达式。 Visual Basic程序设计教程
取当前时间使用Time函数,使用格式为:Time 9.6.2 时间数据 1.取当前时间 取当前时间使用Time函数,使用格式为:Time 例如: Print Time ‘ 输出当前时间到窗体上与时间相关的函数还有Hour(小时)、Minute(分)、Second(秒)等。例如要得到当前的时间的小时数,使用如下语句: Print Hour(Time) Visual Basic程序设计教程
同样我们也可以对机器的时间进行设置,这时 Time关键字位于赋值号的左边。例如直接给时 间赋值: Time = #12:0:0# 2.设置时间 同样我们也可以对机器的时间进行设置,这时 Time关键字位于赋值号的左边。例如直接给时 间赋值: Time = #12:0:0# 也可以使用变量给系统时间赋值: Mytime = #4:35:17 PM# ' 指定一个时间 Time = Mytime Visual Basic程序设计教程
使用格式为:TimeSerial(Hour, Minute, Second) 函数执行后,返回一个Date型的数据。其中参数Hour、Minute、Second分别为时、分、秒,正常取值范围分别为 0 (12:00 AM. )~23 (11:00 PM)、0~59、0~59,或者为任何可以被接受的表达式。 例如:TimeSerial(12 - 6, -15, 0) Visual Basic程序设计教程
TimeValue函数返回一个包含时间的数据(Date类型),使用格式为:TimeValue(Time) 其中Time 参数通常是一个字符串表达式或其他表达式,表示 0:00:00 (12:00:00 A.M.) 到 23:59:59 (11:59:59 P.M.) 之间的时刻。如果 Time 包含 Null,则返回 Null。 Visual Basic程序设计教程
·日期的计算最直接的方法是通过算术表达式进行计算。例如下列程序代码给出了当前日前前1天是哪一天: 9.6.3 日期的计算 ·日期的计算最直接的方法是通过算术表达式进行计算。例如下列程序代码给出了当前日前前1天是哪一天: Dim Date1 As Date Date1 = Date - 100 Print Date1 ·除了使用算术表达式,VB提供了进行日期计算三个函数DateAdd、DateDiff和DatePart。 Visual Basic程序设计教程
函数FormatDateTime将返回一个日期或时间格式的表达式。使用格式为: 9.6.4 格式化日期和时间 1.FormatDateTime函数 函数FormatDateTime将返回一个日期或时间格式的表达式。使用格式为: FormatDateTime(Date[,NamedFormat]) 其中参数Date是必需的,它给出要被格式化的日期表达式。NamedFormat是可选的,使用数字值表示日期/时间所使用的格式。 Visual Basic程序设计教程
Visual Basic程序设计教程 常数 值 描述 vbGeneralDate 显示日期和/或时间。日期部分用短日期格式显示,时间部分用长时间格式显示。如果两部分都有,两部分都显示 vbLongDate 1 用计算机区域设置值中指定的长日期格式显示日期 vbShortDate 2 用计算机区域设置值中指定的短日期格式显示日期 vbLongTime 3 用计算机区域设置值中指定的时间格式显示时间 vbShortTime 4 用24小时格式(hh:mm)显示时间即短时间格式 Visual Basic程序设计教程
【例9-7】使用FormatDateTime函数给出日期和时间的不同格式。程序代码如下。 Private Sub Form_Load() Dim MyDate As Date Show MyDate = FormatDateTime(Now, vbGeneralDate) Print Print " 默认的日期时间格式: " & MyDate Print " 长 日 期 格 式: " & FormatDateTime(Now,vbLongDate) Print " 短 日 期 格 式: " & FormatDateTime(Now, vbShortDate) Print " 长 时 间 格 式: " & FormatDateTime(Now, vbLongTime) Print " 短 时 间 格 式: " & FormatDateTime(Now, vbShortTime) End Sub Visual Basic程序设计教程
Format( Express,FormatType) 其中,Express可以是Date型的数据或表达式,FormatType使用表9.9中的设置值,例如yyyy代表4位年份,mm代表两位的月份,m使用一位的月份(如果超过一位,如11月12月,按实际输入),使用d表示日,dddd表示星期, hh表示时,nn表示分,ss表示秒等。也可以使用VB预定义的格式名(如表9.6所示)。 Visual Basic程序设计教程
【例9-8】使用Format函数格式化日期和时间的例子。执行程序后的显示如图9.8所示。程序代码如下。 Private Sub Form_Load() Dim MyDate As Date Show MyDate = Format(#1/1/2005#, " mm/dd/yyyy") Print " " & MyDate Print Format(#1/1/2005#, " m/d/yy") Print Format(#1/1/2005#, " mmmm d,yy") Print Format(#1/1/2005#, " dd") Print Format(#1/1/2005#, " dddd") Print " 当前日期" & Format(Now, " dddddd") Print " 当前日期为本月的第" & Format(Now, " w") & "周" Print Format(Now, " hh:nn:ss") Print Format(Now, " hh:nn AM/PM") Print Format(#11:59:59 AM#, " hh::ss AM/PM") Print Format(#12:00:01 AM#, " hh::ss AM/PM") End Sub Visual Basic程序设计教程
9.7 使用VB的日历控件MonthView VB提供了几个日历控件,本节通过一个例子演示日历控件的使用。 Visual Basic程序设计教程
设计一个简易定时器,界面如图所示。图中文本框Text1用来显示开始时间和定时的时间间隔,用单选按钮“时间”和“间隔(分)”确定文本框中的输入数据是定时的 开始时间和定时间隔。使用命令按钮“开始”进入定时过程,“重置”按钮使得定时设置重新开始。 9.8 程序举例 Visual Basic程序设计教程
进入定时过程,在窗体的标题栏上以秒为单位进行倒计时,计时归零后通过机器的内部扬声器发出声音。 Visual Basic程序设计教程