PDA

View Full Version : مبتدی: چطور شمارش معکوس یک تاریخ رو بگیریم



god of war 313
شنبه 30 اردیبهشت 1402, 23:02 عصر
با سلام خدمت دوستان

من میخوام یک برنامه بسازم که کاربر وقتی کاربر یک تاریخ رو انتخاب میکنه و مثلا 12 روز بعد و دکمه ثبت رو زد تو یک لیبل شمارش معکوس تا رسیدن به اون روز باشه(ساعت و روز)

سوالم اینه چطوری این کار رو بکنم ؟

فکر نکنم استفاده از تایمر فکر خوبی باشه چون تعداد زیاده

با تشکر.

پرستو پارسایی
یک شنبه 31 اردیبهشت 1402, 08:56 صبح
با سلام خدمت دوستان

من میخوام یک برنامه بسازم که کاربر وقتی کاربر یک تاریخ رو انتخاب میکنه و مثلا 12 روز بعد و دکمه ثبت رو زد تو یک لیبل شمارش معکوس تا رسیدن به اون روز باشه(ساعت و روز)

سوالم اینه چطوری این کار رو بکنم ؟

فکر نکنم استفاده از تایمر فکر خوبی باشه چون تعداد زیاده

با تشکر.









با کد زیر تاریخی که کاربر انتخاب کرده را دریافت کنید
DateTime selectedDate = dateTimePicker1.Value;

حالا برای محاسبه معکوس زمان باقی‌مانده، باید تاریخ را با تعداد روزهایی که کاربر انتخاب کرده است، جمع کنید و سپس از زمان فعلی کم کنید

DateTime selectedDate = dateTimePicker1.Value;
DateTime currentDate = DateTime.Now;
TimeSpan remainingTime = selectedDate.AddDays(12) - currentDate;


label1.Text = string.Format("زمان باقی‌مانده: {0} روز و {1} ساعت و {2} دقیقه و {3} ثانیه", remainingTime.Days, remainingTime.Hours, remainingTime.Minutes, remainingTime.Seconds);




در این کد، با استفاده از تابع ()string.Format متنی که شامل زمان باقی‌مانده است، به لیبل اضافه می‌شود و اگر بخواهید بصورت RunTime لیبل بروزرسانی شود :
private Timer timer1;

public Form1()
{
InitializeComponent();


timer1 = new Timer();
timer1.Interval = 60000; // زمان به میلی‌ثانیه
timer1.Tick += new EventHandler(timer1_Tick);
timer1.Start();
}


private void timer1_Tick(object sender, EventArgs e)
{
DateTime selectedDate = dateTimePicker1.Value;
DateTime currentDate = DateTime.Now;
TimeSpan remainingTime = selectedDate.AddDays(12) - currentDate;


if (remainingTime.TotalSeconds > 0)
{
label1.Text = string.Format("زمان باقی‌مانده: {0:dd} روز {0:hh} ساعت {0:mm} دقیقه {0:ss} ثانیه", remainingTime);
}
else
{
label1.Text = "تاریخ مورد نظر گذشته است!";
}
}