ورود

View Full Version : سوال: نحوه غیر فعال کردن یک لینک در تاریخ مشخص



golhay2
جمعه 13 شهریور 1388, 12:57 عصر
با سلام خدمت برنامه نویسان محترم
می خواستم بدونم چگونه می شود یک لینک را از اول تا دهم یک ماه فعال و پس از
آن غیر فعال کرد
با تشکر

z_m3000
جمعه 13 شهریور 1388, 13:07 عصر
خیلی ساده است .
تاریخ مورد نظرتون رو توی یک فایل تکست یا دیتا بیس (اولی بیشتر توصیه میشه ) ذخیره کنید . بعد در متد Page-LOad تاریخ امروز رو از شی System.Date و متد now بخونید و اگر تاریخ امروز از اون تاریخ ذخیره شده بزرگتر بود لینک رو غیر فعال کنید .
اگر هم می خواید توی یک دوره فعال باشه کافیه تاریخ شروع و پایان دوره زمانی رو ذخیره کنید و هر دفعه که صفحه لود میشه این تاریخ رو با تاریخ مورد نظرتون مقابسه کنید

behnam-s
جمعه 13 شهریور 1388, 13:10 عصر
فاسل تکست یا دیتا بیس (اولی بیشتر توصیه میشه )
چرا اولی بیشتر توصیه میشه ؟

z_m3000
جمعه 13 شهریور 1388, 13:16 عصر
خب چون معمولا اینطور اطلاعات که فقط یکیه و چند تا نیست ارزش طراحی دیتا بیس نداره . معمولا اینطور اطلاعات رو مثل تعداد کل بازدید کنندگان یک سایت یا تاریخ های مشخص و ... رو در یک فایل متنی قرار میدیم و از اون فایل می خونیم و ویرایش می کنیم .

golhay2
جمعه 13 شهریور 1388, 15:17 عصر
میشه یه مثال بزنید من برای هر ماه می خواهم نه برای یک ماه

behnam-s
جمعه 13 شهریور 1388, 15:37 عصر
تاریخ رو حتما در دیتابیس ذخیره کنید (فیلد از نوع datetime)
تاریخ مورد نظرتونو با کلاس system.globalization.persiancalendar به میلادی تبدیل کنید و ذخیره کنید (تو سایت بگردید مثال های زیادی در موردش پیدا می کنید)
بعد در page_loud با تاریخ امروز مقایسش کنید

DateTime dt=new (DateTime)
dt.Compare(DateTime.Now)

golhay2
شنبه 14 شهریور 1388, 14:22 عصر
ممنون ولی من می خواهم در یک بازه زمانی چک شود نه در یک روز

golhay2
دوشنبه 23 شهریور 1388, 12:56 عصر
کسی نمونه مثال برای کار کردن با تاریخ را نداره مثلا نمایش اطلاعات بین دو تاریخ مشخص
با تشکر

golhay2
چهارشنبه 25 شهریور 1388, 17:09 عصر
با سلام
کسی نمونه مثال در این مورد نداره

behnam-s
چهارشنبه 25 شهریور 1388, 20:40 عصر
یک تکه کد نمونه:
برای دو نظر سنجی که در تاریخ های مشخص شده در دیتابیس که مدت آنها (به روز )هم در دیتابیس مشخص شده:

SqlCommand is_idea_date_cm = new SqlCommand("SELECT dbo.class.mid_idea_date,dbo.class.mday, dbo.class.end_idea_date,dbo.class.eday,dbo.karamuz _acad.ok FROM dbo.karamuz_acad INNER JOIN dbo.class ON dbo.karamuz_acad.class = dbo.class.code where (karamuz_acad.karamuz_code='" + Session["id"] + "')", con);
SqlDataReader is_idea_date_rd;
is_idea_date_rd = is_idea_date_cm.ExecuteReader();
bool mi = new bool(), ei = new bool();
while (is_idea_date_rd.Read())
{
if (is_idea_date_rd.GetDateTime(0).CompareTo(DateTime .Now) <= 0)
{
DateTime dt = new DateTime();
dt = is_idea_date_rd.GetDateTime(0);
if (dt.AddDays(double.Parse(is_idea_date_rd.GetInt16( 1).ToString())).CompareTo(DateTime.Now) >= 0)
mi = true;
else
mi = false;
}
else
mi = false;
if (is_idea_date_rd.GetDateTime(2).CompareTo(DateTime .Now) <= 0)
{
DateTime dt2 = new DateTime();
dt2 = is_idea_date_rd.GetDateTime(2);
if (dt2.AddDays(double.Parse(is_idea_date_rd.GetInt16 (3).ToString())).CompareTo(DateTime.Now) >= 0)
ei = true;
else
ei = false;
}
else
ei = false;
if (!mi && !ei)
{
DateTime mdate = is_idea_date_rd.GetDateTime(0), edate = is_idea_date_rd.GetDateTime(2);
attention_lbl.Text = "نظر سنجی میان دوره شما در تاریخ ";
attention_lbl.Text += fa_cal.GetDayOfMonth(mdate).ToString() + '/' + fa_cal.GetMonth(mdate).ToString() + '/' + fa_cal.GetYear(mdate).ToString();
attention_lbl.Text += "و نظر سنجی پایان دوره شما در تاریخ ";
attention_lbl.Text += fa_cal.GetDayOfMonth(edate).ToString() + '/' + fa_cal.GetMonth(edate).ToString() + '/' + fa_cal.GetYear(edate).ToString();
attention_lbl.Text += " می باشد";
attention_lbl.Visible = true;
}
}