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

نام تاپیک: راهنمایی برای محاسبه کارکرد پرسنل شیفت 14/14

  1. #1

    راهنمایی برای محاسبه کارکرد پرسنل شیفت 14/14

    با سلام بنده قصد دارم سیستم محاسبه ساعت کارکرد برای شیفت کاری 14 روز کار و 14 روز استراحت بنویسم

    شرایط شیفت ها به صورت زیره
    • 4 شیفت ABCD هست که کل ماه رو پوشش میدن
    • همیشه دو شیفت باهم سرکار هستن یه شبفت روزکار یه شیفت شبکار
    • روز شروع شیفت همیشه شنبه هست
    • تایم کار شیفت ها به این صورته که دو شیفت سرکار روز کار 12 ساعت و شبکار هم 12 ساعت هست
    • با توجه به چرخشی بودن شیفت الزاما از اول ماه شروع نمیشه و اخر ماه هم تموم نمیشه


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

    فقط میخوام روزکارکرد هر شیفت رو در هر ماه شمسی حساب کنم
    در تصویر زیر وضعیت شیفت ها نسبت به هم رو مشخص کردم
    ممنون میشم دوستان اگر تجربه ای در این زمینه داشتن راهنمایی کنند


    Untitled.png

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

    نقل قول: راهنمایی برای محاسبه کارکرد پرسنل شیفت 14/14

    خوبه که همه مثل شما پرسش را گویا و دقیق بیان کنن!

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

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

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

  3. #3

    نقل قول: راهنمایی برای محاسبه کارکرد پرسنل شیفت 14/14

    ممنونم که جواب دادید و عذر میخوام که من دیر جواب دادم
    بله روز های ابتدایی رو میتونیم مفروض بگیریم چون همیشه 14 روز کار و 14 روز استراحت هست و هیچ تعطیلی نداره

    ممنون میشم اگر راهکاری به ذهنتون رسید منو راهنمایی کنید

  4. #4
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

    نقل قول: راهنمایی برای محاسبه کارکرد پرسنل شیفت 14/14

    در واقع خیلی ساده است و فقط یک حلقه نیاز داره

    شما یک سیکل 28 روزه دارین که درون خودش 4 سیکل هفت روزه داره، کافی هست یک شمارنده بسازین که از اولین شنبه تا پایان تقویم شیفت یکی یکی بشماره و با توجه به اینکه کدوم هفته در سیکل 28 روزه هست مقادیر گروه های کاری رو مشخص کنه.

    اول یک جدول میسازین با فیلدهای (بعنوان نمونه) :
    id,y,m,d,doy_of_week,shift1,shift2,rest1,rest2

    بعضی از فیلدها مثل day_of_week ممکنه نیازی بهشون نباشه ولی برای درک بهتر روش کار یا چک کردن نتایج میتونه مفید باشه
    یا اینکه بجای سه فیلد y,m,d شاید ترجیح بدین یک فیلد yyyymmdd داشته باشین
    اینها مهم نیست و سلیقه ای هست

    فعلا فقط لاجیک کار رو میارم و به روش نوشتن دیتا در جدول کاری ندارم چون به اندازه کافی کد نمونه براش هست.
    فقط باید اولین روز تقویم کاری رو حتما مطمئن باشید که شنبه است! مثل همین تاریخ که در کد پایین هست.

    کد شما چیزی شبیه این میشه:


    dim pc as persiancalendar
    dim schedule_start as datetime=new datetime(1398,3,11,pc) ' 1398/03/11
    dim schedule_end as datetime=new datetime(1398,12,29,pc) ' 1398/12/29
    dim pdate as datetime=schedule_start
    dim i as long=0

    do while pdate <= schedule_end
    i=i + 1
    id <-- i
    y <-- pc.getyear(pdate)
    m <-- pc.getmonth(pdate)
    d <-- pc.getdayofmonth(pdate)
    day_of_week <-- pc.getdayofweek(pdate)
    select case (i-1) mod 28
    case 0 to 6 ' week 1
    shift1 <-- "a"
    shift2 <-- "b"
    rest1 <-- "d"
    rest2 <-- "c"
    case 7 to 13 ' week2
    ...
    case 14 to 20 ' week 3
    ...
    case 21 to 27 ' week 4
    ...
    end select
    pdate=pc.adddays(pdate,1)
    loop

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

  1. پاسخ: 3
    آخرین پست: یک شنبه 14 دی 1393, 09:47 صبح
  2. پاسخ: 0
    آخرین پست: سه شنبه 09 اسفند 1390, 22:11 عصر

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

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

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