常用不常用,要看每個人的編程方向和使用習慣的!一般字符串函數和類型轉換函數都是要用的
創新互聯堅持“要么做到,要么別承諾”的工作理念,服務領域包括:做網站、網站建設、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的臨淄網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
DateDiff 函數
返回 Variant (Long) 的值,表示兩個指定日期間的時間間隔數目。
語法
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
DateDiff 函數語法中有下列命名參數:
部分 描述
interval 必要。字符串表達式,表示用來計算date1 和 date2 的時間差的時間間隔
Date1□date2 必要;Variant (Date)。計算中要用到的兩個日期。
Firstdayofweek 可選。指定一個星期的第一天的常數。如果未予指定,則以星期日為第一天。
firstweekofyear 可選。指定一年的第一周的常數。如果未予指定,則以包含 1 月 1 日的星期為第一周。
設置
interval 參數的設定值如下:
設置 描述
yyyy 年
q 季
m 月
y 一年的日數
d 日
w 一周的日數
ww 周
h 時
n 分鐘
s 秒
firstdayofweek 參數的設定值如下:
常數 值 描述
vbUseSystem 0 使用 NLS API 設置。
vbSunday 1 星期日(缺省值)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
常數 值 描述
vbUseSystem 0 用 NLS API 設置。
vbFirstJan1 1 從包含 1 月 1 日的星期開始(缺省值)。
vbFirstFourDays 2 從第一個其大半個星期在新的一年的一周開始。
vbFirstFullWeek 3 從第一個無跨年度的星期開始。
說明
DateDiff 函數可用來決定兩個日期之間所指定的時間間隔數目。例如,可以使用 DateDiff 來計算兩個日期之間相隔幾日,或計算從今天起到年底還有多少個星期。
為了計算 date1 與 date2 相差的日數,可以使用“一年的日數”(y) 或“日”(d)。當 interval 是“一周的日數”(w) 時,DateDiff 返回兩日期間的周數。如果 date1 是星期一,DateDiff 計算到 date2 為止的星期一的個數。這個數包含 date2 但不包含 date1。不過,如果 interval 是“周”(ww),則 DateDiff 函數返回兩日期間的“日歷周”數。由計算 date1 與 date2 之間星期日的個數而得。如果 date2 剛好是星期日,則 date2 也會被加進 DateDiff 的計數結果中;但不論 date1 是否為星期日,都不將它算進去。
如果 date1 比 date2 來得晚,則 DateDiff 函數的返回值為負數。
firstdayofweek 參數會影響使用時間間隔符號 “W” 或 “WW” 計算的結果。
如果 date1 或 date2 是日期文字,則指定的年份成為該日期的固定部分。但是,如果 date1 或 date2 用雙引號 (" ") 括起來,且年份略而不提,則在每次計算表達式 date1 或 date2 時,當前年份都會插入到代碼之中。這樣就可以書寫適用于不同年份的程序代碼。
在計算 12 月 31 日和來年的 1 月 1 日的年份差時,DateDiff 返回 1 表示相差一個年份,雖然實際上只相差一天而已。
VB.NET編程Mid函數一般用于返回原字符串中子串,比如說:
Dim?MyString,?FirstWord,?LastWord,?MidWords??
MyString?=?"Mid?Function?Demo"?建立一個字符串。??
FirstWord?=?Mid(MyString,?1,?3)?'?返回?"Mid"。??
LastWord?=?Mid(MyString,?14,?4)?'?返回?"Demo"。??
MidMidWords?=?Mid(MyString,?5)?'?返回?"Funcion
具體函數說明如下:返回 Variant (String),其中包含字符串中指定數量的字符。
mid函數的語法:
Mid(string,?start[,?length])
mid函數的參數:
string 必要參數。字符串表達式,從中返回字符。如果 string 包含 Null,將返回 Null;
start 必要參數。為 Long。string 中被取出部分的字符位置。如果 start 超過 string 的字符數,VB.NET Mid函數返回零長度字符串 ("");
length 可選參數;為 Variant (Long)。要返回的字符數。如果省略或 length 超過文本的字符數(包括 start 處的字符),將返回字符串中從 start 到尾端的所有字符。
這說明你調用 API 傳參存在問題。
首先有沒有設置結構體內存對齊?
[StructLayout(LayoutKind.Sequential)] 加了嗎?
COLORREF 不要用 Color 代替,用 int 代替
TCHAR cfFaceName[32] 定義為 Byte 數組也可以,帶在傳參前,必須初始化為 32 個長度
1. Shared Function System.Runtime.
InteropServices.DLLimport("user32.dll")
2. MessageBoxA(ByVal hwnd As Integer,
ByVal text As String, ByVal
lpcaption As String, ByVal
wtype As Integer) As Integer
3. End Function
首先integer被作為32位數據替代了long(long是64位)
System是Net語言中的一個族,System.Runtime.InteropServices是system中的一個類。System.Runtime.InteropServices.DLLimpor是其中的一個方法。調用DLL的API
接口,這個的意思就是vb6的lib"user32", share是共享的意思,例如:
1. Public Class classA
2. Shared Function System.Runtime.
InteropServices.DLLimport("user32.dll")
MessageBoxA(ByVal h As Integer,
ByVal m As String, ByVal c As
String, ByVal type As Integer) As Integer
3. End Function
4. End Class
你可以這樣調用 classA.MessageboxA 但是如果沒有這個share 在class后打點就沒有MessageboxA的成員出現了 ,現在你就象以前一樣的使用他吧。
其實上面這個VB.NET函數調用方法并不正確,我們仍舊要使用API聲明,只是換了一各形式
如果你認為這就是VB.NET就錯了,看看這個:
system.WinForms.MessageBox.Show("對話內容寫在這里", "標題寫在這里", messagebox.OK BitOr messagebox.IconAsterisk)
這就是面向對象,你已經完成了所有的任務。不需要任何的API聲明。不需要寫多余的代碼。
1. messagebox.IconAsterisk=驚嘆號圖標
2. messagebox.IconError=錯誤圖標
3. messagebox.IconExclamation=警告圖標
4. messagebox.IconHand=錯誤圖標
5. messagebox.IconInformation=提示圖標
所經點NET就是打點到達,在族后面打點,在類后面打點,在對象后面打點。第二個問題就是類與類之間相互的關系,Net在網上處理人與人的關系,在程序語言中處理類與類的關系。倒底是加不加share,倒底是類后面打點,還是Dim成一個對象(把他當一個變量吧)再說,是等于class,還是New class.是dim xxx as class=new class 還是dim xxx as new class
就是這樣VB.NET函數調用將更簡單,不須要研究一些很難的東西。