2012-01-18 100 views
0

如何獲得比上月和去年如何獲得比上月和去年

代碼

Dim dtr As String 
text1.Text = "01/2011" 'User Input.... (mm/yyyy) 
dtr = text1.Text 

如果用戶選擇01/2011那麼日期應該顯示前一個月和一年...

預期輸出

  • 如果用戶輸入text1.text =「02/2011」,則應顯示「01/2011」
  • 如果用戶輸入text1.text =「01/2011」,那麼它應該顯示「12/2010」

誰能幫我做到這一點?

+0

轉換字符串轉換成日期字段,然後減去1一個月的日期和重新串吧,對不起,不是一個VB6的傢伙,如果這是.Net我可以幫助 – Neo 2012-01-18 14:02:39

+3

Gopal問了一個[非常類似的問題](http://stackoverflow.com/questions/8698963/how-to-get-the-days-for-the-date),現在他被暫停,一個全新的用戶開始提問類似的問題。 – JimmyPena 2012-01-18 15:03:09

+1

@JP - 那不能是Gopal。他沒有以「需要VB6代碼幫助」結束這個問題。 :P – UnhandledExcepSean 2012-01-18 18:12:05

回答

3

大廈我提供了關於你的最後一個問題的答案...

Dim dt As Date 
Dim DaysInLastMonth As Integer 
Dim LastMonth As String 

dt = CDate(txtPeriod.Text) 
dt = DateAdd("m", -1, dt) 
LastMonth = Format$(dt, "mm/yyyy") 
DaysInLastMonth = DateDiff("d", dt, DateAdd("m", 1, dt)) 

MsgBox LastMonth & vbCrLf & DaysInLastMonth 
+1

它只是簡單地說 LastMonth = format $(dt,「mm/yyyy」) – ChrisPadgham 2012-01-18 22:06:30

+0

@Chris出於某種原因,它我從未想過要走這條路。 +1 – UnhandledExcepSean 2012-01-18 23:23:15

0

您可以將日期解析爲DateTime變量,使用DateTime.TryParse您可以對變量使用AddMonths(-1)方法。

UPDATE: DateAdd函數在VB6 http://www.vb6.us/tutorials/understanding-vb6s-dateadd-function

+0

是不是TryParse一個vb.net的東西? – 2012-01-18 14:10:25

+0

對不起,但這確實是.NET而不是VB6。 – tcarvin 2012-01-18 14:16:44

+0

哦,對不起,我沒有看到它的VB6 ...但原則應該是相同的 – tburi 2012-01-18 14:17:19

2

您可以輸入的文本轉換爲使用CDATE一個Date()。

然後,您可以執行DateAdd(),指定月份的單位和值-1(用於減法)。

最後,您可以使用Format()將您要查找的mm/yyyy樣式轉換回字符串。

相關問題