Как получить текущий квартал от текущей даты с помощью C#

Я пытаюсь получить текущий квартал от текущей даты и сохранить его как int сначала, а затем после того, как я получу текущий квартал, например, Q1, я хочу сохранить Q1 как строку. Я получаю ошибку, которая читается так: неназначенная локальная переменная dt. . Пожалуйста помочь. спасибо

DateTime dt;
int quarterNumber = (dt.Month - 1) / 3 + 1;

4 ответов


Ну, вы не указываете "текущую дату" в любом месте - вы не присвоили значение вашему dt переменная, на что жалуется компилятор. Вы можете использовать:

DateTime dt = DateTime.Today;

обратите внимание, что это будет использовать системный локальный часовой пояс - и дата зависит от часового пояса. Если вы хотите дату текущего момента в UTC, например, вы хотели бы:

DateTime dt = DateTime.UtcNow.Date;

подумайте очень внимательно о том, что вы подразумеваете под "сегодня".

кроме того, немного более простой альтернативной версией вашего расчета будет:

int quarter = (month + 2) / 3;

Это было хорошее начало, я закончил использовать эту строку. Казалось бы, более прямолинейным в отношении цели, вместо добавления 2.

Math.Ceiling(DateTime.Today.Month / 3m)

DT в настоящее время присвоен null. Вам нужно инициализировать его с помощью DateTime dt = DateTime.Now;


инициализируется значением default(DateTime), который имеет значение 1/1/0001 12:00:00 AM