PDA

View Full Version : دستکاری تاریخ سیستم



phonixone2
جمعه 14 تیر 1392, 09:38 صبح
باسلام
من از کلاس زیر برای تبدیل تاریخ به شمسی استفاده میکنم الان در جدول یه فیلد تاریخ انقضاء دارم برای اینکه این تاریخ انقضاء را تولید کنم باید تاریخ اصلی را دستکاری کنم چیکار باید بکنم لطفا راهنمایی کنین

public class General
{
public static string PersianDate(string test)
{
System.Globalization.PersianCalendar oPersianC = new System.Globalization.PersianCalendar();
string Day, Month, Year, Date = "";
int d;

if (string.IsNullOrEmpty(test))
{
Year = oPersianC.GetYear(System.DateTime.Now).ToString();
Month = oPersianC.GetMonth(System.DateTime.Now).ToString() ;
Day = oPersianC.GetDayOfMonth(System.DateTime.Now).ToStr ing();

//Read Today Day Into d Var
d = oPersianC.GetDayOfMonth(System.DateTime.Now);

//Convert Int Day of Date To Ascii Code Of It's
char c = (char)d;


switch (Month)
{
case "1": Month = "01";
break;
case "2": Month = "02";
break;
case "3": Month = "03";
break;
case "4": Month = "04";
break;
case "5": Month = "05";
break;
case "6": Month = "06";
break;
case "7": Month = "07";
break;
case "8": Month = "08";
break;
case "9": Month = "09";
break;
case "10": Month = "10";
break;
case "11": Month = "11";
break;
case "12": Month = "12";
break;
default:
break;
}

Date = Day + " / " + Month + " / " + Year;
}
else
{
}
return Date;
}

public static string AddMonth(int i)
{
string month = "";
switch (i)
{
case 1: month = "فروردین"; break;
case 2: month = "اردیبهشت"; break;
case 3: month = "خرداد"; break;
case 4: month = "تیر"; break;
case 5: month = "مرداد"; break;
case 6: month = "شهریور"; break;
case 7: month = "مهر"; break;
case 8: month = "آبان"; break;
case 9: month = "آذر"; break;
case 10: month = "دی"; break;
case 11: month = "بهمن"; break;
case 12: month = "اسفند"; break;
default:
break;
}
return month;
}

public General()
{
}
}

farzane_t
جمعه 14 تیر 1392, 10:35 صبح
میشه بیشتر توضیح بدین؟ مشکلتون چیه؟ نمیدونین چطور از این کلاس استفاده کنید؟

phonixone2
جمعه 14 تیر 1392, 12:40 عصر
نه استفادشو بلدم با این کلاس مثلا تاریخ سیستم به صورت 92/04/01 در میاد ولی من میخوام اینو دستکاری کنم مثلا 04 رو به 05 تغییر بدم اینو نمیدونم چجوریه

farzane_t
جمعه 14 تیر 1392, 16:27 عصر
شما با استفاده از خط

Date = Day + " / " + Month + " / " + Year;
تاریخ رو ذخیره میکنی. همه رو درون تابع PersianDate به دست میاری. فکر میکنم برای اینکار باید برای هر بخشی که میخوای دستکاریش کنی تابع جداگانه بنویسی. هرتابع یه مقدار رو برگردونه ، با تابعی دستکاری رو انجام بدی و بعد باهم ترکیب کنی و درون دیتابیس ذخیره کنی.

General-Xenon
جمعه 14 تیر 1392, 17:53 عصر
شما با استفاده از خط

Date = Day + " / " + Month + " / " + Year;
تاریخ رو ذخیره میکنی. همه رو درون تابع PersianDate به دست میاری. فکر میکنم برای اینکار باید برای هر بخشی که میخوای دستکاریش کنی تابع جداگانه بنویسی. هرتابع یه مقدار رو برگردونه ، با تابعی دستکاری رو انجام بدی و بعد باهم ترکیب کنی و درون دیتابیس ذخیره کنی.

سلام . چرا تابع جداگانه ؟

اولا کد رو به این تغییر بده
public DateTime PersianDate()
{
System.Globalization.PersianCalendar pc = new System.Globalization.PersianCalendar();
return new DateTime(
pc.GetYear(DateTime.Now),
pc.GetMonth(DateTime.Now),
pc.GetDayOfMonth(DateTime.Now),
pc.GetHour(DateTime.Now),
pc.GetMinute(DateTime.Now),
pc.GetSecond(DateTime.Now),
(int)pc.GetMilliseconds(DateTime.Now));
}

تاریخ رو می خوای دست کاری کنی ؟
// 1 mah Ziad
PersianDate().AddMonths(1);
// 1 mah kam
PersianDate().AddMonths(-1);
// 10 rooz kam
PersianDate().AddDays(-10);


حالا از این تاریخی که استفاده کردی قسمت هاییشو می خوای ؟
این جوری
// sal
PersianDate().ToString("yyyy");
// mah
PersianDate().ToString("MM");
// rooz
PersianDate().ToString("dd");