简体   繁体   中英

vb.net now.year

i am new to vb.net and just wanted to clarify something. i have this code -

Dim i As Integer
For i = Now.Year To Now.Year

Next

for the code "For i = Now.Year To Now.Year", when the month changes to say May 2010, will the now.year to now.year change the 11 records to May 2011. or will it be may 2010 again?

Now.Year only returns the year. So if you run it right now, it'll return 2010. If you run the same code next year, it'll return 2011.

Ok, let me try to do this with my poor VB skills. :)

Dim last As String
last = ""
Try
    Dim i As Integer
    Dim j As Integer
    Dim time As DateTime = DateTime.Now
    i = Now.Year
        For j = 11 To 0
            If j < (Now.Month - 1) Then
                i = (Now.AddYears(1).Year)
            Else
                i = Now.Year
            End If
            last = (time.AddMonths(j)).ToString("MMMM") + " " + (i.ToString)
            DDL.Items.Add(last)
        Next
End Try

If you run this, it will populate the drop down list with the remaining months left in this year, then increase your Year integer, and add the months next year up until this month next year.

At least I think this should work, but I'm not really up on my VB. It should give you an idea though.

Based on your comment to this answer , try this:

Dim j As Integer
Dim time As DateTime = DateTime.Now
For j = 0 To 11
    Dim s As String = time.AddMonths(j).ToString("MMMM yyyy")
    DDL.Items.Add(s)
Next

I'm having a hard time understanding your question. 'Now' is a function which returns the current system time. If it is any month in 2010, Now.Year will return 2010. If it is any month in 2011, Now.Year will return 2011.

But, and this is important, the result of 'Now' can change from call to call. If it is new year's eve, you can call Now.Year once and get 2010 then call it again and get 2011. This could happen in your for loop, because it calls Now.Year twice! Even worse, 'Now' depends on the current time set by the user. If the user backs up the date by a year at just the wrong time your loop might not run at all! (ie. because for i = 2010 to 2009 will not execute the body once)

I see a loop that should be an assignment of the current year to the variable i. You probably mean something totally different.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM