Pasupathy Msc Ответов: 3

Как заполнить ряд дат с помощью даты начала и даты окончания в C#


я успешно создал дату начала и дату окончания,но мне нужно вставить первую дату в последнюю дату в c#.пример,

дата начала:01/02/2018
02/02/2018
.
.
.
.
.
дата окончания:22/05/2018.


и мне нужен еще один код.

когда я вставляю значение =1000.
он будет вставлять как
01/02/2018=100.
02/02/2018=100.
03/02/2018=100.
.
.
.
.
.
.
10/02/2018=100.

пожалуйста, дайте мне код c#, спасибо вам, друзья.

Что я уже пробовал:

я не знаю, как загрузить свой скриншот

CHill60

Не загружайте снимок экрана, просто опубликуйте код, который вы пробовали, используйте ссылку улучшить вопрос. Это может помочь прояснить ваш вопрос. Кроме того, если вы хотите получить ответ на C#, почему вы отметили SQL?

3 Ответов

Рейтинг:
6

#realJSOP

Похоже, что вы пытаетесь рассчитать график платежей на основе минимального значения платежа.

Просто разделите сумму кредита на минимальную сумму платежа (в данном случае это 10). Это позволит установить, сколько платежей необходимо произвести. Конечно, ваш код должен также учитывать возможность того, что сумма платежа неравномерно делится на сумму кредита. После того, как вы установили, сколько платежей необходимо сделать, это простой вопрос, чтобы установить дату последнего платежа с помощью startDate.AddMonths(numberOfPayments) Если вам нужны фактические даты (что ИМХО нелепо, но домашнее задание программиста часто изобилует нелепыми требованиями), то повторите месяцы с даты начала, чтобы получить каждую последующую дату оплаты)

Если вы не понимаете задание, попросите вашего инструктора разъяснить (или попытайтесь бодрствовать в классе, пока инструктор инструктирует). Это совсем не трудно...


Рейтинг:
2

Maciej Los

Лучший способ достичь этого-это создание хранимой процедуры[^] на уровне SQL server. Увидеть пример кода SQL.

USE YourDateBaseName;

CREATE PROCEDURE uspInsertDateRange
--input variables
    @startDate DATE,
    @endDate DATE,
    @myVal INT
AS
    SET NOCOUNT ON;

    --start recursive query
    ;WITH CTE AS 
    (
        --initial values
	SELECT @startDate AS myDate, @myVal AS myValue
	WHERE @startDate <= @endDate 
        -recursion part
	UNION ALL
	SELECT DATEADD(DD, 1, myDate) AS myDate, @myVal AS myValue
	FROM CTE
	WHERE DATEADD(DD, 1, myDate) <= @endDate 
    )
    --insert statement
    INSERT INTO YourTableName (myDate, myValue )
    SELECT myDate, myValue 
    FROM CTE
    OPTION (MAXRECURSION 0)

GO;


Как вызвать его из кода? Проверить это: Как установить и получить параметры для командных объектов[^]


Если вы хотите использовать пользовательский интерфейс для достижения этой цели, вам нужно будет создать объект DataTable[^] и Класс SqlBulkCopy (System.Data.SqlClient)[^]

Попробуй!


Pasupathy Msc

приведенный выше код не может быть выполнен, он показывает ошибку
Msg 111, Уровень 15, состояние 1, процедура uspInsertDateRange, строка 9
"CREATE/ALTER PROCEDURE" должен быть первым оператором в пакете запросов.
Msg 4145, Уровень 15, состояние 1, процедура uspInsertDateRange, строка 16
Выражение небулевского типа, заданное в контексте, где ожидается условие, рядом с ';'.
Msg 4145, Уровень 15, состояние 1, процедура uspInsertDateRange, строка 21
Выражение небулевского типа, заданное в контексте, где ожидается условие, рядом с ';'.
Msg 102, Уровень 15, состояние 1, процедура uspInsertDateRange, строка 29
Неправильный синтаксис рядом с "GO".

Maciej Los

Какой у вас сервер баз данных: MS SQL, MySQL, PostgreSQL, другие?

Pasupathy Msc

MS SQL сэр

Maciej Los

Что такое версия?

Pasupathy Msc

MS SQL 2014

Maciej Los

Вышеуказанный запрос должен быть выполнен правильно. Вы должны перейти по ссылке о создании хранимой процедуры.

Рейтинг:
0

johannesnestler

Итак, по какой-то причине вам нужен список дат от даты начала до даты окончания с разницей в один день?
Просто использовать тип datetime это AddDays метод.

Я не понимаю, что вы могли бы иметь в виду, когда "когда я вставляю значение =1000" - пожалуйста, опишите свой сценарий лучше (весь вопрос не очень ясен - лучше скажите, чего вы хотите достичь)


Pasupathy Msc

скажем, например, если я вставлю 1000 рупий, то код будет автоматически назначен на 10 дней для 100 рупий.

#realJSOP

Как мы должны извлечь это из вашего вопроса (как указано)?

Pasupathy Msc

у меня нет кода сэр