PDA

View Full Version : بدست آوردن تاریخ هفته



zare69
سه شنبه 20 مهر 1389, 15:25 عصر
با سلام

من میخوام با داشتن یک تاریخ مثلا تاریخ2010/04/02،تاریخ اولین و آخرین روز هفته را به دست بیارم کسی میتونه روش بدست آوردنش را یاد بده.

با تشکر

mmd2009
سه شنبه 20 مهر 1389, 16:35 عصر
با سلام

سوالتون اصلا واضح نبود ولی به هر حال من یک کد نوشتم ببین به درد میخوره یا نه. اگر نخورد رو همین کد توضیح بده که باید چی بشه که تبدیل بشه به اون چیزی که مد نظر شماست



/// <summary>
/// متدی برای ارسال روزهای اول و اخر یک هفته
/// </summary>
/// <returns>مقدار روزهای هفته</returns>
private string MydateOfWeek(DateTime MyDate)
{
DateTime Mydate2, Mydate;
if (MyDate.Month > 7)
{
Mydate = Convert.ToDateTime(MyDate.Year + "/" + MyDate.Month + "/" + 1);
Mydate2 = Convert.ToDateTime(MyDate.Year + "/" + MyDate.Month + "/" + 31);
return (Convert.ToString(MyDate.DayOfWeek) + "//" +
Convert.ToString(Mydate2.DayOfWeek));
}
else
{
Mydate = Convert.ToDateTime(MyDate.Year + "/" + MyDate.Month + "/" + 1);
Mydate2 = Convert.ToDateTime(MyDate.Year + "/" + MyDate.Month + "/" + 30);
return (Convert.ToString(MyDate.DayOfWeek) + "//" +
Convert.ToString(Mydate2.DayOfWeek));
}
}

private void button1_Click(object sender, EventArgs e)
{
this.Text = this.MydateOfWeek(DateTime.Now);
}

C Sharp
چهارشنبه 21 مهر 1389, 09:57 صبح
سلام دوست من

اگه منظورتون روز اول و آخر هفته به شمسی باشه که راه حل رو در کدهای زیر میبینید ، اگر نه ، بجای استفاده از PersianCalendar میتونید از خود DateTime استفاده کنید.

قبلش با PersianCalendar میتونین شماره هفته و سال شمسی رو بدست بیارید و به این متدها پاس بدین

روز اول هفته :


public static DateTime GetFirstDayOfWeek(int year, byte weekNo)
{
PersianCalendar pc = new PersianCalendar();
DateTime firstDayOfYear = new DateTime(year, 1, 1, pc);

int distanceToSaturday =
0 - (((int)firstDayOfYear.DayOfWeek + 1) % 7);
DateTime dateOfWeek = pc.AddWeeks(firstDayOfYear.AddDays(distanceToSatur day), weekNo - 1);

if (pc.GetYear(dateOfWeek) == year)
return dateOfWeek;
else
return firstDayOfYear;
}


روز دوم هفته


public static DateTime GetLastDayOfWeek(int year, byte weekNo)
{
PersianCalendar pc = new PersianCalendar();
DateTime firstDayOfYear = new DateTime(year, 1, 1, pc);
DateTime lastDayOfYear = new DateTime(year, 12, pc.GetDaysInMonth(year, 12), pc);

int distanceToFriday =
6 - (((int)firstDayOfYear.DayOfWeek + 1) % 7);

DateTime dateOfWeek = pc.AddWeeks(firstDayOfYear.AddDays(distanceToFrida y), weekNo - 1);

if (pc.GetYear(dateOfWeek) == year)
return dateOfWeek;
else
return lastDayOfYear;

}