Vivek VIshwas Ответов: 4

Как напечатать всю дату между двумя разными датами в ASP.NET


Hello 
 
My Requirment is as following
Printing all the dates between first date & Second date
 .aspx--------------
 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="date-picker.aspx.cs" Inherits="date_picker" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<title>jQuery UI Datepicker - Change Date Format Example



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


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


.ui-datepicker
{
font-size: 8pt !important;
}




<div class="demo">
Date 1:
<asp:TextBox ID="txtDate" runat="server" />
<br><br>
Date 2:
<asp:TextBox ID="txtDate2" runat="server" />
<br>
<br>
<asp:Button ID="printdate" runat="server" Text="Print Dates"
onclick="printdate_Click" />
</div>



. cs------------------------- 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class date_picker : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void printdate_Click(object sender, EventArgs e)
{
}
}


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

На самом деле мое требование состоит в том, чтобы напечатать все даты из выбранного диапазона дат в asp.net с#.
срочно ищу елку глеп

4 Ответов

Рейтинг:
2

Karthik_Mahalingam

DateTime fromDate;
DateTime toDate;
if (!DateTime.TryParseExact(txtDate.Text.Trim(), "yy-mm-dd", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None, out fromDate))
{
    // throw error message, saying invalid date format
}

if (!DateTime.TryParseExact(txtDate2.Text.Trim(), "yy-mm-dd", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None, out toDate))
{
    // throw error message, saying invalid date format
}

DataTable dt = new DataTable();
dt.Columns.Add("Dates");


if (fromDate > toDate)
{
    // throw error message, saying from date should be lesser than end date
}
else
{
    double totaldays = (toDate - fromDate).TotalDays;
    for (int i = 0; i < totaldays; i++)
        dt.Rows.Add(fromDate.AddDays(i).ToString("yy-mm-dd"));

}

GridView1.DataSource = dt;  // display the data in the gridview.
GridView1.DataBind();


Vivek VIshwas

Приведенный выше код не генерирует дату, пожалуйста, проверьте внимательно. и обнови меня. Спасибо

Karthik_Mahalingam

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

Vivek VIshwas

datatable, который вы использовали для хранения "дат", не содержит никаких данных.
Пожалуйста, ознакомьтесь с кодом.

Karthik_Mahalingam

Какое значение вы получаете в fromdate и todate

Vivek VIshwas

ничего, потому что обе переменные не содержат никакой даты

Karthik_Mahalingam

Какое значение вы получаете в txtdate и txtdate 2

Рейтинг:
2

Vivek VIshwas

protected void printdate_Click(object sender, EventArgs e)
   {
       //    DateTime starting = new DateTime();
       //    starting = DateTime.ParseExact(txtDate.Text, "yyyy-MM-dd", null);
       //    DateTime ending = new DateTime();
       //    ending = DateTime.ParseExact(txtDate2.Text, "yyyy-MM-dd", null);

       // //   List<DateTime> dates = GetDatesBetween(starting, ending);
       //    DateTime[] dates = GetDatesBetween(starting, ending).ToArray();

       //}
       printdate1();
   }


  public void printdate1()
   {
       DateTime fromDate;
       DateTime toDate;
       if (!DateTime.TryParseExact(txtDate.Text.Trim(), "yy-mm-dd", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None, out fromDate))
       {
           // throw error message, saying invalid date format
       }

       if (!DateTime.TryParseExact(txtDate2.Text.Trim(), "yy-mm-dd", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None, out toDate))
       {
           // throw error message, saying invalid date format
       }

       DataTable dt = new DataTable();
       dt.Columns.Add("Dates");


       if (fromDate > toDate)
       {
           // throw error message, saying from date should be lesser than end date
       }
       else
       {
           double totaldays = (toDate - fromDate).TotalDays;
           for (int i = 0; i < totaldays; i++)
               dt.Rows.Add(fromDate.AddDays(i).ToString("yy-mm-dd"));

       }

       GridView1.DataSource = dt;  // display the data in the gridview.
       GridView1.DataBind();
   }


Vivek VIshwas

где ваш код улучшения?..

BillWoodruff

Пожалуйста, не публикуйте правки вашего оригинального поста в качестве решений. Вместо этого измените/пересмотрите/обновите свой исходный пост.

Рейтинг:
1

Karthik_Mahalingam

Тестовое решение

в связи с этим Ошибки и предложения[^]
_______________________________________________________________________________________


общественного недействительными printdate1()
{
DateTime StartingDate = DateTime.Синтаксический анализ(txtDate.Текст);

DateTime EndingDate = Дата-Время.Синтаксический анализ(txtDate2.Текст);
foreach (DateTime date in GetDateRange(StartingDate, EndingDate))
{
//WL(дата.ToShortDateString());

Ответ.Напишите("'"+ дата.ToShortDateString() +"' ");

//Ответ.Напишите("alert('" + дата.ToShortDateString() + "') ");
//lbldate.InnerHtml = дата.ToShortDateString();

}
}
частный список<datetime> GetDateRange(DateTime StartingDate, DateTime EndingDate)
{
if (StartingDate > EndingDate)
{
возвращать null;
}
Список<типа datetime&ГТ; РВ = новый список<типа datetime&ГТ;();
DateTime tmpDate = StartingDate;
делать
{
rv.Add(tmpDate);
tmpDate = tmpDate.AddDays(1);
} while (tmpDate <= EndingDate);
возвращение rv;
}


Рейтинг:
0

Vivek VIshwas

public void printdate1()
    {
        DateTime StartingDate = DateTime.Parse(txtDate.Text);
        
        DateTime EndingDate = DateTime.Parse(txtDate2.Text);
        foreach (DateTime date in GetDateRange(StartingDate, EndingDate))
        {
            //WL(date.ToShortDateString());
            
            Response.Write("'"+ date.ToShortDateString() +"' ");
            
            //Response.Write("<script>alert('" + date.ToShortDateString() + "')  </script>");
            //lbldate.InnerHtml = date.ToShortDateString();

        }
    }
    private List<datetime> GetDateRange(DateTime StartingDate, DateTime EndingDate)
    {
        if (StartingDate > EndingDate)
        {
            return null;
        }
        List<datetime> rv = new List<datetime>();
        DateTime tmpDate = StartingDate;
        do
        {
            rv.Add(tmpDate);
            tmpDate = tmpDate.AddDays(1);
        } while (tmpDate <= EndingDate);
        return rv;
    }


CHill60

Является ли это решением вашего собственного вопроса?

Vivek VIshwas

да