سلام
من یه تاریخ شمسی تو برنامه دارم (PersianCalendar) حالا می خوام یه روز یا یه هفته ازش کم کنم. چطوری باید این کارو انجام بدم؟
ممنون
سلام
من یه تاریخ شمسی تو برنامه دارم (PersianCalendar) حالا می خوام یه روز یا یه هفته ازش کم کنم. چطوری باید این کارو انجام بدم؟
ممنون
من توی این کد یک زمان که string هست را بهش نسبت دادم امیدوارم به دردت بخوره
string s = patient.birthDay;
FreeControls.PersianDate d = new FreeControls.PersianDate(Convert.ToInt32(s.Substri ng(0, 4)), Convert.ToInt32(s.Substring(5, 2)), Convert.ToInt32(s.Substring(8, 2)));
dateBirthDay.Value = d;
نه. من تاریخ روز رو به شمسی تبدیل کردم جالا می خوام از این تاریخ 7 روز کم کنم
خوب 7 روز کم کن و دوباره به روش بالا ست کن.
خب مشکل همینه دیگه. چجوری 7 روز کم کنم؟ با کدوم تابع؟ همینجوری که نمیشه منهای 7 کردش
تاریخ رو به datetime تبدیل و از متد addDays استفاده کنید آخر سر دوباره به شمسی تبدیل کنید:
DateTime dTime = new DateTime(1391, 09, 15, new PersianCalendar());
dTime.AddDays(-7);
راستش من هرکاری می کنم نمیشه. میشه لطف کنین یه نمونه کد بزارین؟ همه این کارارو می کنم ولی در نهایت این dTime هیچ تغییری نمیکنه. اصلا تاریخش هم به میلادی میزاره دوباره. بودن و نبودن اون add.days هم هیچ تاثیری توش نداره.
من با این کد تاریخ رو شمسی می کنم:
PersianCalendar PerCal = new PersianCalendar();
string Year, Day, Month;
int date;
Year = PerCal.GetYear(DateTime.Now).ToString();
Month = PerCal.GetMonth(DateTime.Now).ToString();
Day = PerCal.GetDayOfMonth(DateTime.Now).ToString();
Day = (Day.Length == 1) ? "0" + Day : Day;
Month = (Month.Length == 1) ? "0" + Month : Month;
return date = Convert.ToInt32(Year + Month + Day);
با این کد درست شد
PersianCalendar PerCal = new PersianCalendar();
int lastday;
return lastday = PerCal.GetDayOfMonth(DateTime.Now.AddDays(-1));
public
متد برای تبدیل دیت تایم به تاریخ شمسی می باشد static string ChangeCalander(DateTime dt)
{
string StDate = "";
System.Globalization.PersianCalendar pcal = newPersianCalendar();
string strMonth = pcal.GetMonth(dt).ToString();
string strDay = pcal.GetDayOfMonth(dt).ToString();
int Month = pcal.GetMonth(dt);
if (Month < 10)
{
strMonth = "0" + pcal.GetMonth(dt).ToString();
}
int Day = pcal.GetDayOfMonth(dt);
if (Day < 10)
{
strDay = "0" + pcal.GetDayOfMonth(dt).ToString();
}
return StDate = pcal.GetYear(dt).ToString() + '/' + strMonth + '/' + strDay;
}
این متد برای تبدیل تاریخ شمسی به دیت تایم می باشد public static DateTime ToDateTime(string date)
{
PersianCalendar pcal = newPersianCalendar();
return pcal.ToDateTime(int.Parse(date.Substring(0, 4)), int.Parse(date.Substring(5, 2)), int.Parse(date.Substring(8, 2)), 0, 0, 0, 0);
}
این متد اصلي است تاريخ را به فارسی بدهید و تعداد روزهایی که می خواهید کم شود اگر می خواهید روز اضافه کنید یا روز را منفی بدهید یا اون منفی داخل متد را بردارید public static string ShowDayBefore(string date,int day)
{
DateTime dt=newDateTime();
dt = ToDateTime(date);
string output = "";
PersianCalendar pcal = newPersianCalendar();
return ChangeCalander(pcal.AddDays(dt, -1 * day));
}