نمایش نتایج 1 تا 6 از 6

نام تاپیک: مقایسه تاریخ و زمان>کوک کردن برنامه

  1. #1

    مقایسه تاریخ و زمان>کوک کردن برنامه

    سلام . قصد دارم در یک برنامه با استفاده از dateTimePicker و یک maskedTexBox زمانی رو به در برنامه داشته باشم تا هر وقت تاریخ سیستم با تاریخ مذکور برابر یا فراتر شد اتفاق خاصی بیفته . من یک بار مقادیر dtP و mtb رو به صورت رشته دراوردم و سعی کردم با تاریخ سیستم مقایسه کنم . جواب نداد . یه بار هم همون رشته رو با datetime.parse برگردوندم به نوع دیتتایم . باز نشد . چطور باید عمل مقایسه رو انجام بدم ؟

  2. #2
    کاربر دائمی آواتار far9090
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران
    سن
    36
    پست
    259

    نقل قول: مقایسه تاریخ و زمان>کوک کردن برنامه

    متوجه منظورتون دقیقا نشدم . ولی دو نوع DateTime در C#‎‎ به راحتی با هم قابل مقایسه هستن . شما حتی میلی ثانیه ها رو هم می تونید با هم مقایسه کنید . شما باید مقادیر textbox رو از هم جدا کنید و داخل فیلدهای hour , minute و secound بریزید . بعد هم هر وقت خواستید با هم مقایسه کنید .
    وقتی یک نمونه از DateTime میسازید داخل Constructor پارامتر های ساعتتون رو بدید .

  3. #3

    نقل قول: مقایسه تاریخ و زمان>کوک کردن برنامه

    تاریخی که کاربر وارد میشه رو DateTime تبدیل کن و از زمان جاری سیستم کم کن ، نتیجه رو توی یه TimeSpan ذخیره کن. بعدش چک کن ببین نتیجه صفر و یا کمتر از صر شده یا نه!
                DateTime DT = Convert.ToDateTime("2009/11/4 15:20:00");
    DateTime Now = DateTime.Now;
    TimeSpan Result = DT - Now;
    if (Result.TotalSeconds <= 0)
    {
    //Do Some Things
    }

  4. #4

    نقل قول: مقایسه تاریخ و زمان>کوک کردن برنامه

    ضمن تشکر از همه باس بگم متأسفانه هرچی سعی کردم نشد . ریزالت به هیچ وجه به سمت صفر نیل نمیکنه . یا مثبت میشه یا منفی . و این یعنی توقفی برای برنامه و اجرای دستورات نیست .
    من دو تا حالتو امتحان کردم . یه بار تایم.نا رو از اونیکی کم کردم یه بار برعکسش . ولی در هر دو صورت مقدار ریزالت از صفر شروع میشه و افزایش یا کاهش پیدا میکنه . به صفر نمیرسه .

  5. #5
    کاربر دائمی آواتار far9090
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران
    سن
    36
    پست
    259

    نقل قول: مقایسه تاریخ و زمان>کوک کردن برنامه

    DateTime dateTime1 = new DateTime();
    DateTime datetime2;
    private void Form1_Load(object sender, EventArgs e)
    {
    datetime2 = new DateTime(1, 1, 1, 13, 31, 0);
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
    dateTime1 = DateTime.Now;
    TimeSpan timeSpan = new TimeSpan();
    timeSpan = dateTime1 - datetime2;
    this.Text = timeSpan.Hours.ToString() +":"+ timeSpan.Minutes.ToString()+":" + timeSpan.Seconds.ToString();
    }
    همین رو کپی کن . فقط datetime2 رو با یک دقیقه تاخیر کوک کن . برنامه رو اجرا کن , دقیقا تو text فرمتون اگه ببینید در هنگام مساوی شدن دو مقدار 0 میشه .
    آخرین ویرایش به وسیله Sajjad.Aghapour : پنج شنبه 14 آبان 1388 در 23:40 عصر دلیل: کدها را داخل تگ کد(#) بگذارید

  6. #6

    نقل قول: مقایسه تاریخ و زمان>کوک کردن برنامه

    متأسفانه هرچی سعی کردم نشد . ریزالت به هیچ وجه به سمت صفر نیل نمیکنه . یا مثبت میشه یا منفی . و این یعنی توقفی برای برنامه و اجرای دستورات نیست .
    من دو تا حالتو امتحان کردم . یه بار تایم.نا رو از اونیکی کم کردم یه بار برعکسش . ولی در هر دو صورت مقدار ریزالت از صفر شروع میشه و افزایش یا کاهش پیدا میکنه . به صفر نمیرسه .
    بایدم صفر نشه چون خاصیت TotalSeconds عددی اعشاری (Double) برمیگردونه که توی این حالت اختلاف دو زمان بر حسب ثانیه است (اعشارش میلی ثانیه رو نشون میده). اگر این کد رو توی یه تایمر بنویسید و خاصیت Interval رو برابر 1 بذارید بازم احتمال صفر شدن Result پایینه! به همین خاطر توی شرط کوچکتر مساوی رو چک کردم. شما زمان مورد نظر خودتون رو از زمان کنونی کم کنید اگه Result منفی شد کاری که میخواید رو انجام بدید بعد زمان خودتون رو کوک کنید
            DateTime DT = Convert.ToDateTime("2009/11/4 15:20:00");
    private void timer1_Tick(object sender, EventArgs e)
    {
    DateTime Now = DateTime.Now;
    TimeSpan Result = DT - Now;
    if (Result.TotalSeconds <= 0)
    {
    //Do Some Things
    DT = DT.AddMinutes(3);
    }
    }

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •