vb.net now.year - PullRequest
       25

vb.net now.year

1 голос
/ 09 января 2010

Я новичок на vb.net и просто хотел кое-что прояснить. у меня есть этот код -

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

Next

для кода «Для i = Now.Year To Now.Year», когда месяц изменится на май 2010, изменится с now.year на now.year 11 записей на май 2011 года. Или это может быть 2010 снова?

Ответы [ 3 ]

2 голосов
/ 09 января 2010

Сейчас. Год возвращает только год. Так что, если вы запустите его прямо сейчас, он вернется в 2010 году. Если вы запустите тот же код в следующем году, он вернется в 2011 году.

Хорошо, позвольте мне попытаться сделать это с моими плохими навыками VB. :)

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

Если вы запустите это, он заполнит выпадающий список оставшимися месяцами, оставшимися в этом году, затем увеличит целое число года и добавит месяцы следующего года до этого месяца следующего года.

По крайней мере, я думаю, что это должно работать, но я не особо разбираюсь в своем VB. Это должно дать вам представление.

1 голос
/ 09 января 2010

На основании вашего комментария к этому ответу , попробуйте это:

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
0 голосов
/ 09 января 2010

Мне трудно понять твой вопрос. «Сейчас» - это функция, которая возвращает текущее системное время. Если это какой-либо месяц в 2010 году, Now.Year вернется в 2010 году. Если это будет любой месяц в 2011 году, Now.Year вернется в 2011 году.

Но, и это важно, результат «Сейчас» может меняться от звонка к звонку. Если это канун Нового года, вы можете позвонить прямо сейчас. Один раз и получить 2010, затем позвонить снова и получить 2011. Это может произойти в цикле for, потому что он вызывает Now.Year дважды! Хуже того, «Сейчас» зависит от текущего времени, установленного пользователем. Если пользователь создает резервную копию даты на год в в неправильное время , ваш цикл может вообще не работать! (т. е. потому что для i = 2010 до 2009 не будет выполнено тело один раз)

Я вижу цикл, который должен быть присваиванием текущего года переменной i. Вы, вероятно, имеете в виду что-то совершенно другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...