-1

2つの日付フィールドがあると考えてみましょう。

DateTime dt1 = "01/04/2012"
DateTime dt2 = "31/08/2012"

ここで私の日付は「DD/MM/YYYY」形式です。ここで、dt1は開始日、dt2は終了日です。2つの日付フィールドから、04,05,06,07,08か月であることがわかります。

そのため、ドロップダウンリストの項目に月と年の組み合わせとして表示したいと思います。

04/2012
05/2012
06/2012
07/2012
08/2012

どうすればこれを達成できますか?

4

4 に答える 4

0
        DateTime dt1 = new DateTime(2012,04,01);
        DateTime dt2 = new DateTime(2012,08,30);

        int firstMonth = dt1.Month;
        int lastMonth =dt2.Month;
        //Then you can compare the two numbers as you like
于 2012-07-11T10:35:28.263 に答える
0

以下のようなものは、ドロップダウンにバインドするために使用できる文字列のリストを提供します。

 DateTime dt1 = DateTime.ParseExact("01/04/2012", "d/M/yyyy", CultureInfo.InvariantCulture);
 DateTime dt2 = DateTime.ParseExact("31/08/2012", "d/M/yyyy", CultureInfo.InvariantCulture);
List<string> list = new List<string>();
while (dt2 > dt1)
     {
      list.Add(dt1.Month + "/" + dt1.Year);
      dt1 = dt1.AddMonths(1);
      }

foreachを使用して出力すると、次のようになります。

    foreach (string str in list)
    {
        Console.WriteLine(str);
    }


4/2012
5/2012
6/2012
7/2012
8/2012

後でASP.Netの場合(ドロップダウンリストを使用したため)、次のことができます

    DropDownList1.DataSource = list;
    DropDownList1.DataBind();
于 2012-07-11T10:35:37.370 に答える
0

あなたはこのようなことをすることができます:

int firstMonth = Int32.Parse(dt1.Month);
int secondMonth = Int32.Parse(dt2.Month);
int year = Int32.Parse(dt1.Year);
// You could do some checking if the year is different or something.
for(int month = firstMonth; month <= secondMonth; month++)
    // Add the date to the drop down list by using (month + year).ToString()

お役に立てれば!

于 2012-07-11T10:36:28.027 に答える
0

Asp.netの場合:

   DateTime dt1 = new DateTime();
    dt1 = DateTime.ParseExact("01/04/2012", "dd/MM/yyyy", CultureInfo.InvariantCulture);
    DateTime dt2 = new DateTime();
    dt2 = DateTime.ParseExact("31/08/2012", "dd/M/yyyy", CultureInfo.InvariantCulture);
    while (dt2 > dt1)
    {
        dt1 = dt1.AddMonths(1);
        this.dateDropDownList.Items.Add(dt1.ToString("MM / yyyy", CultureInfo.InvariantCulture));
    }

Windowsフォームの場合:

    DateTime dt1 = new DateTime();
    dt1 = DateTime.ParseExact("01/04/2012", "dd/MM/yyyy", CultureInfo.InvariantCulture);
    DateTime dt2 = new DateTime();
    dt2 = DateTime.ParseExact("31/08/2012", "dd/M/yyyy", CultureInfo.InvariantCulture);
    while (dt2 > dt1)
    {
        dt1 = dt1.AddMonths(1);
        this.dateComboBox.Items.Add(dt1.ToString("MM / yyyy", CultureInfo.InvariantCulture));
    }
于 2012-07-11T11:53:40.343 に答える