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

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

  1. #1

    به دست آوردن روزهای هفته بین دو تاریخ

    با سلام


    من یه تاریخ شروع دارم و یه تاریخ پایان . مثلا از الان تا سال 1410 .
    میخوام تاریخ تمام روزهای شنبه و چهارشنبه یا هر روز دیگه ای که کاربر بین تاریخ شروع و پایان انتخاب میکنه رو تویه دیتابیس ذخیره کنم (البته به صورت شمسی). (هر کدام از روزها قابل انتخاب می باشد.امکان دارد تمام روزهای هفته انتخاب شود .)


    دوستان میتونن راهنمایی کنن ؟

  2. #2

    نقل قول: به دست آوردن روزهای هفته بین دو تاریخ

    در حالت تئوری میگم، میتونی وقتی تاریخ شروع و پایان رو دریافت کردی، یه حلقه for بذاری و از تاریخ اول شروع کنی و دونه دونه روز اون تاریخها رو چک کنی که ایا شنبه س یا چهارشنبه، یه همچین چیزی:
    DateTime start = DateTime.Now, End = DateTime.Now.AddDays(20);
    for (DateTime iterator = start; iterator <= End /*or like this DateTime.Compare(iterator, End) <= 0*/; iterator = iterator.AddDays(1))
    {
    switch (iterator.DayOfWeek)
    {
    case DayOfWeek.Sunday:
    break;
    case DayOfWeek.Monday:
    break;
    case DayOfWeek.Tuesday:
    break;
    case DayOfWeek.Wednesday:
    // insert date to db
    break;
    case DayOfWeek.Thursday:
    break;
    case DayOfWeek.Friday:
    break;
    case DayOfWeek.Saturday:
    // insert date to db
    break;
    default:
    break;
    }
    }

    دیگه زحمت تبدیل تاریخ میلادی به شمسی با خودت
    آخرین ویرایش به وسیله mr.sirwan : سه شنبه 08 خرداد 1397 در 16:38 عصر

  3. #3

    نقل قول: به دست آوردن روزهای هفته بین دو تاریخ

    دستور Switch جواب نمیده . چون Switch فقط یک شرط رو چک میکنه و از حلقه میاد بیرون.

  4. #4

    نقل قول: به دست آوردن روزهای هفته بین دو تاریخ

    متوجه نشدم، یعنی چی فقط یه شرط رو چک میکنه؟ خب فقط وارد case ی میشه که شرطش برقرار باشه، بعدشم بیرون رفتن از حلقه ربطی به سوئیچ نداره، تکرار حلقه اصلا دست سوئیچ نیس که بخواد از حلقه خارج کنه، کدتو قرار بده ببینیم مشکل چیه

  5. #5
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: به دست آوردن روزهای هفته بین دو تاریخ

    نقل قول نوشته شده توسط jafarpalideh مشاهده تاپیک
    دستور Switch جواب نمیده . چون Switch فقط یک شرط رو چک میکنه و از حلقه میاد بیرون.
    با سلام
    کدشون کاملاً درسته برای تست میتونید خروجی رو در Console مشاهده کنید

    DateTime start = DateTime.Now, End = DateTime.Now.AddDays(20);
    for (DateTime iterator = start; iterator <= End /*or like this DateTime.Compare(iterator, End) <= 0*/; iterator = iterator.AddDays(1))
    {
    switch (iterator.DayOfWeek)
    {
    case DayOfWeek.Sunday:
    Console.WriteLine(iterator.ToString(new DateTimeFormatInfo().ShortDatePattern));
    break;
    case DayOfWeek.Monday:
    break;
    case DayOfWeek.Tuesday:
    break;
    case DayOfWeek.Wednesday:
    // insert date to db
    break;
    case DayOfWeek.Thursday:
    break;
    case DayOfWeek.Friday:
    break;
    case DayOfWeek.Saturday:
    // insert date to db
    break;
    default:
    break;
    }
    }

    روزهای یک شنبه رو استخراج میکنه که فقط شما باید به شمسی تبدیلش کنید
    اگر هم برای دو یا چند روز توی سوئیچ کد WriteLine رو بنویسید اونها رو هم استخراج میکنه
    موفق باشید
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

  6. #6

    نقل قول: به دست آوردن روزهای هفته بین دو تاریخ

    نقل قول نوشته شده توسط danialafshari مشاهده تاپیک
    با سلام
    کدشون کاملاً درسته برای تست میتونید خروجی رو در Console مشاهده کنید

    DateTime start = DateTime.Now, End = DateTime.Now.AddDays(20);
    for (DateTime iterator = start; iterator <= End /*or like this DateTime.Compare(iterator, End) <= 0*/; iterator = iterator.AddDays(1))
    {
    switch (iterator.DayOfWeek)
    {
    case DayOfWeek.Sunday:
    Console.WriteLine(iterator.ToString(new DateTimeFormatInfo().ShortDatePattern));
    break;
    case DayOfWeek.Monday:
    break;
    case DayOfWeek.Tuesday:
    break;
    case DayOfWeek.Wednesday:
    // insert date to db
    break;
    case DayOfWeek.Thursday:
    break;
    case DayOfWeek.Friday:
    break;
    case DayOfWeek.Saturday:
    // insert date to db
    break;
    default:
    break;
    }
    }

    روزهای یک شنبه رو استخراج میکنه که فقط شما باید به شمسی تبدیلش کنید
    اگر هم برای دو یا چند روز توی سوئیچ کد WriteLine رو بنویسید اونها رو هم استخراج میکنه
    موفق باشید
    احتمالا من متوجه نمیشم.
    منظورم اینه الان اگه کاربر شنبه و دوشنبه و چهارشنبه رو انتخاب کنه , فقط میاد و شنبه رو ثبت میکنه . سراغ دوشنبه و چهارشنبه نمیره

  7. #7
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: به دست آوردن روزهای هفته بین دو تاریخ

    نقل قول نوشته شده توسط jafarpalideh مشاهده تاپیک
    احتمالا من متوجه نمیشم.
    منظورم اینه الان اگه کاربر شنبه و دوشنبه و چهارشنبه رو انتخاب کنه , فقط میاد و شنبه رو ثبت میکنه . سراغ دوشنبه و چهارشنبه نمیره
    دوست عزیز برا این مورد سوییچ درست نیست. سوئیچ به اولین مورد صحیح که رسید با break خارج میشه. شما باید از دستور if به تنهایی استفاده کنید که میشه کد زیر



    DateTime start = DateTime.Now, End = DateTime.Now.AddDays(20);
    for (DateTime iterator = start; iterator <= End /*or like this DateTime.Compare(iterator, End) <= 0*/; iterator = iterator.AddDays(1))
    {
    if(iterator.DayOfWeek==DayOfWeek.Sunday)
    {
    //Insert To Db
    }
    if(iterator.DayOfWeek==DayOfWeek.Monday)
    {
    Console.WriteLine(iterator.ToString(new DateTimeFormatInfo().ShortDatePattern));
    }
    if(iterator.DayOfWeek==DayOfWeek.Tuesday)
    {
    Console.WriteLine(iterator.ToString(new DateTimeFormatInfo().ShortDatePattern));
    }
    if(iterator.DayOfWeek==DayOfWeek.Wednesday)
    {
    //Insert To Db
    }
    if(iterator.DayOfWeek==DayOfWeek.Friday)
    {
    Console.WriteLine(iterator.ToString(new DateTimeFormatInfo().ShortDatePattern));
    }
    if(iterator.DayOfWeek==DayOfWeek.Saturday)
    {
    //Insert To Db
    }
    }


  8. #8
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,909

    نقل قول: به دست آوردن روزهای هفته بین دو تاریخ

    درباره switch بیشتر مطالعه کنید
    اینم شنبه و دوشنبه و چهارشنبه، switch رو به شکل زیر تغییر بدید:

    switch (iterator.DayOfWeek)
    {
    case DayOfWeek.Sunday:
    break;
    case DayOfWeek.Monday:
    Console.WriteLine(iterator.ToString(new DateTimeFormatInfo().ShortDatePattern));
    break;
    case DayOfWeek.Tuesday:
    break;
    case DayOfWeek.Wednesday:
    Console.WriteLine(iterator.ToString(new DateTimeFormatInfo().ShortDatePattern));
    break;
    case DayOfWeek.Thursday:
    break;
    case DayOfWeek.Friday:
    break;
    case DayOfWeek.Saturday:
    Console.WriteLine(iterator.ToString(new DateTimeFormatInfo().ShortDatePattern));
    break;
    default:
    break;
    }
    آخرین ویرایش به وسیله danialafshari : پنج شنبه 10 خرداد 1397 در 10:14 صبح
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

  9. #9

    نقل قول: به دست آوردن روزهای هفته بین دو تاریخ

    نقل قول نوشته شده توسط jafarpalideh مشاهده تاپیک
    احتمالا من متوجه نمیشم.
    منظورم اینه الان اگه کاربر شنبه و دوشنبه و چهارشنبه رو انتخاب کنه , فقط میاد و شنبه رو ثبت میکنه . سراغ دوشنبه و چهارشنبه نمیره
    یک لیست از موارد انتخابی کاربر ایجاد کنید.
    در حلقه چک کنید روز درون حلقه ، جزئی از لیست هست یا نه.
    آخرین ویرایش به وسیله Mahmoud.Afrad : پنج شنبه 10 خرداد 1397 در 11:05 صبح

  10. #10
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: به دست آوردن روزهای هفته بین دو تاریخ

    نقل قول نوشته شده توسط danialafshari مشاهده تاپیک
    درباره switch بیشتر مطالعه کنید
    اینم شنبه و دوشنبه و چهارشنبه، switch رو به شکل زیر تغییر بدید:

    switch (iterator.DayOfWeek)
    {
    case DayOfWeek.Sunday:
    break;
    case DayOfWeek.Monday:
    Console.WriteLine(iterator.ToString(new DateTimeFormatInfo().ShortDatePattern));
    break;
    case DayOfWeek.Tuesday:
    break;
    case DayOfWeek.Wednesday:
    Console.WriteLine(iterator.ToString(new DateTimeFormatInfo().ShortDatePattern));
    break;
    case DayOfWeek.Thursday:
    break;
    case DayOfWeek.Friday:
    break;
    case DayOfWeek.Saturday:
    Console.WriteLine(iterator.ToString(new DateTimeFormatInfo().ShortDatePattern));
    break;
    default:
    break;
    }
    میتونید به صورت زیر هم بنویسید:


    switch (iterator.DayOfWeek)
    {
    case DayOfWeek.Sunday:
    break;
    case DayOfWeek.Monday:
    case DayOfWeek.Wednesday:
    case DayOfWeek.Saturday:
    Console.WriteLine(iterator.ToString(new DateTimeFormatInfo().ShortDatePattern));
    break;
    case DayOfWeek.Tuesday:
    break;
    case DayOfWeek.Thursday:
    break;
    case DayOfWeek.Friday:
    break;
    default:
    break;
    }

    آخرین ویرایش به وسیله رامین مرادی : پنج شنبه 10 خرداد 1397 در 12:11 عصر

  11. #11

    نقل قول: به دست آوردن روزهای هفته بین دو تاریخ

    نقل قول نوشته شده توسط jafarpalideh مشاهده تاپیک
    احتمالا من متوجه نمیشم.
    منظورم اینه الان اگه کاربر شنبه و دوشنبه و چهارشنبه رو انتخاب کنه , فقط میاد و شنبه رو ثبت میکنه . سراغ دوشنبه و چهارشنبه نمیره
    خب شما ممکنه تو درکش مشکل داشته باشی، ببین هر تاریخ مربوط به یک روز از هفته س دیگه، یه تاریخ که نمیتونه هم شنبه باشه هم چهارشنبه باشه، شما اینجا یه حلقه داری که روز به روز دونه دونه تاریخ هارو چک میکنه و به ترتیب روزای مدنظرت رو تو دیتابیس درج میکنه، طرز کار سوئیچ اینجوریه که به ازای هر بار تکرار حلقه، فقط یک case که شرطش برقرار باشه رو اجرا میکنه
    مثلا تاریخ 05/31/2018 پراپرتی DayOfWeekش میشه Thursday و سوئیچ وارد case مربوط به پنجشنه میشه اگه دستوری نوشته شده باشه اجرا میکنه و از بدنه سوئیچ خارج میشه و میره ابتدای حلقه و یک روز رو به iterator اضافه میکنه که میشه 06/01/2018 و دوباره میره داخل بدنه switch اینبار case مربوط به Friday اجرا میشه و...

    از این اسونتر نمیشه توضیح داد

تاپیک های مشابه

  1. مبتدی: به دست آوردن اختلاف زماني بين دو تاريخ
    نوشته شده توسط aagh2008 در بخش Access
    پاسخ: 4
    آخرین پست: یک شنبه 14 مهر 1392, 22:40 عصر
  2. حرفه ای: بدست آوردن تعداد روز،ماه،سال بین دو تاریخ مشخص
    نوشته شده توسط سعید کشاورز در بخش C#‎‎
    پاسخ: 5
    آخرین پست: سه شنبه 21 آذر 1391, 10:13 صبح
  3. سوال: به دست آوردن روزهای بین دو تاریخ
    نوشته شده توسط dottnett در بخش VB.NET
    پاسخ: 3
    آخرین پست: پنج شنبه 18 شهریور 1389, 22:07 عصر
  4. پاسخ: 17
    آخرین پست: دوشنبه 10 اسفند 1388, 22:09 عصر
  5. تبديل تاريخ به شمسي و محاسبه اختلاف بين دو تاريخ
    نوشته شده توسط soroosh_i58 در بخش VB.NET
    پاسخ: 4
    آخرین پست: یک شنبه 17 آذر 1387, 12:57 عصر

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

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