1

私が直面しているこの問題に関するガイダンスが本当に欲しいです。テキストボックスから2つの日付の違いを見つけようとしています。

   protected void Button1_Click(object sender, EventArgs e)
{
    a = TextBox1.Text.ToString().Trim();
    b = TextBox2.Text.ToString().Trim();
    DateTime c = new DateTime();
    DateTime d = new DateTime();
    c = Convert.ToDateTime(a);
    d = Convert.ToDateTime(b);
    System.TimeSpan diffr = d - c;
    Response.Write(diffr.Days);
}

上記は、ボタンクリックイベントで書いたコードです。問題は、コードが違いを間違って返すことです。

つまり、12/02/2013 と 11/02/2013 の間の差分が検出される場合、コードは 1 を返す代わりに 30 を返します。 2 を返すコードは 61 を返します。

日付の選択に Jquery DatePicker を使用しています。私のすべての検索で解決策が得られなかったので、親切に助けてください。

4

5 に答える 5

1

唯一の問題は、日付の形式です
あなたが書いたように、日付の違いではなく月の違いを示しています。
datetime.parseexact を使用してみて、フォーマットを指定してください

例:-

 string poop = "2005-12-14T14:35:32.1700000-07:00";
 DateTime poo = DateTime.ParseExact(poop,"yyyy-MM-ddTHH:mm:ss.fffffffzzz",        
                                System.Globalization.CultureInfo.InvariantCulture);

あなたの場合

 string sDate1=TextBox1.Text.ToString().Trim();
 string sDate2=TextBox1.Text.ToString().Trim();

 DateTime dt1= DateTime.ParseExact(sDate1,"MM-dd-yyyy",        
                                System.Globalization.CultureInfo.InvariantCulture);
 DateTime dt2= DateTime.ParseExact(sDate2,"MM-dd-yyyy",        
                                System.Globalization.CultureInfo.InvariantCulture);

 System.TimeSpan diffr =dt2 - dt1;
 Response.Write(diffr.Days);

そして、それはうまくいくはずです。

于 2013-02-12T06:39:21.243 に答える
1

jQuery datepicker の日付形式を次のように変更できます。

$("#txtDate.datepicker").datepicker({ dateFormat: 'mm-dd-yy' });

jQuery では、現在までのテストを次のように解析できます。

var dateInJs = $.datepicker.parseDate('mm-dd-yy', $('#txtDate.datepicker').val());

または、.NET では、「dd-MM-yyyy」形式の日付を次のように解析できます。

DateTime.ParseExact(txtDate.Text, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);

また、.NET のように CultureInfo を使用することもできます

DateTime Date = DateTime.Parse(txtDate.Text, System.Globalization.CultureInfo.CreateSpecificCulture("hi-IN"));
于 2013-02-12T08:08:36.247 に答える
0

おそらくあなたは使用することができますTimeSpan

DateTime startTime = '';
DateTime endTime = '';

TimeSpan span = endTime.Subtract( startTime );

次に利用できるspan.Seconds, span.Days...など

于 2013-02-12T06:37:43.137 に答える