ثبت زمان های مختلف در هر بازه ای
سلام دوستان
عنوان مناسبی برای سوالم پیدانکردم اگر نامناسب هستش.
درواقع میخواستم که زمان حال حاضر رو دریافت کنم و چند بار ثبت کنم...بطوری که در هرکدوم از این زمان ها اختلاف ثانیه ای بدین صورت باشه :
0
2
3
4
5
6
7
8
9
10
برای مثال بدین صورت داخل لیست باکس بریزم : 2016/12/31;09:47:01
2016/12/31;09:47:03
2016/12/31;09:47:06
2016/12/31;09:47:10
2016/12/31;09:47:15
2016/12/31;09:47:21
2016/12/31;09:47:28
2016/12/31;09:47:36
2016/12/31;09:47:45
2016/12/31;09:47:55
2016/12/31;09:48:06
به چه صورت اینکارو انجام بدم بهتر هستش...ممنون میشوم راهنمایی کنید
نقل قول: ثبت زمان های مختلف در هر بازه ای
با سلام دقیقا میخواین اختلاف ها چند ثانیه ای باشن؟ یکی یکی؟ منظم؟ نامنظم؟
در هر حال برای DateTime متدی به اسم AddSeconds وجود داره که مقدار ثانیه رو میگیره و بسته به مثبت و یا منفی بودن عدد دریافتی، اون مقدار ثانیه رو روی تاریخ اعمال میکنه
اگر سوالتون رو اشتباه متوجه شدم، لطفا بیشتر توضیح بدین
نقل قول: ثبت زمان های مختلف در هر بازه ای
تشکر از شما ...تونستم به هدفم برسم ...فقط موند یه موضوعی :
اینکه چطوری 2 زمان رو با هم مقایسه کنیم ؟ که بدونیم کدوم زمان گذشته هستش کدوم زمان حال.
برای مثال دو زمان با ارایش زیر رو داریم :
22:05:06
10:06:09
درواقع میخواستم شرطی بزارم که هرکدوم از این دو زمان بیشتر بود فلان کار انجام شود.
فکر میکنم باید با تابع split ساعت و دقیقه و ثانیه روجدا کنم و اول ساعت ها رو مقایسه کنم بعد دقیقه بعد ثانیه.
راه حل بهتری سراغ ندارید؟
چون برای تاریخ هم میخواستم چنین کاری انجام بدم .
2017/05/06
2018/06/08
نقل قول: ثبت زمان های مختلف در هر بازه ای
ذکر نکردید که شما این دوتا مقدار رو بصورت string در اختیار دارید یا بصورت datetime ؟ درصورتیکه بصورت datetime در اختیار دارین میتونین از پراپرتی TimeOfDay استفاده کنین که فقط زمان مربوط به اون تاریخ رو در اختیارتون قرار میده و میتونین عمل مقایسه رو انجام بدین، اما اگ بصورت string باشه، میتونین بدین صورت دوتا string رو مقایسه کنین:
این متد درصورتیکه متغیر time1 از متغیر time2 کوچکتر بود -1 درصورتیکه time1 از time2 بزرگتر بود +1 و درصورتیکه دوتا متغییر باهم برابر بودن مقدار صفر رو برمیگردونه
برای مقایسه فقط تاریخ هم میتونین از پراپرتی Date استفاده کنین و عمل مقایسه رو چه با عملگر های < > == و چه با متدdateTime1.Date.CompareTo(dateTime2.Date)
انجام بدین این متد هم مثل متد CompareTo که در بالا توضیح دادم عمل میکنه
نقل قول: ثبت زمان های مختلف در هر بازه ای
یه سوال دیگر اینکه ...
اگر زمانی بصورت زیر بصورت استرینگ یا داخل تکست باکس داشته باشیم :
2016/11/13;12:06:15 ب.ظ
چطوری این زمان رو بدیم به دیتا تایم؟
بصورت دستی اگر بدیم اینطور میشه
DateTime timeSource = new DateTime(2016, 11, 13, 12, 06, 15,ب.ظ );
ولی چطوری تکست باکس رو بدم بهش؟!
نقل قول: ثبت زمان های مختلف در هر بازه ای
نقل قول: ثبت زمان های مختلف در هر بازه ای
نقل قول:
نوشته شده توسط
mr.sirwan
تشکر از شما من این صفحات رو دقایقی پیش مطالعه کردم ولی به نتیجه نرسیدم
در واقع اون ارایش زمانی رو من از قبل در تکست باکس دارم....میخواستم مثلا 2 ثانیه بهش اضافه کنم
ولی متاسفانه خطا میده String was not recognized as a valid DateTime
DateTime timeToUse = Convert.ToDateTime(textBox1.Text);
textBox2.Text= timeToUse.AddSeconds(2).ToString("yy/MM/dd;HH:mm:ss tt")
حتی اینطورم نوشتم نشد
DateTime timeToUse = Convert.ToDateTime(textBox1.Text);
textBox2.Text= timeToUse.AddSeconds(2).ToString()
نقل قول: ثبت زمان های مختلف در هر بازه ای
با سلام
میتونید به این شکل انجام بدید
چون قالب DateTime بدون ; هست باید بجای ; فاصله[Space] باشد
private void button1_Click(object sender, EventArgs e)
{
string[] str = textBox1.Text.Split(';');
string newStr = String.Format("{0} {1}", str[0], str[1]);
DateTime dt = Convert.ToDateTime(newStr);
MessageBox.Show(dt.AddSeconds(2).ToString("yyyy/MM/dd;HH:mm:ss tt"));
}
به شکل زیر هم میشه که بهتره
string str = textBox1.Text.Replace(';', ' ');
DateTime dt = Convert.ToDateTime(str);
MessageBox.Show(dt.AddSeconds(2).ToString("yyyy/MM/dd;HH:mm:ss tt"));
موفق باشید