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

نام تاپیک: چطور میشه برنامه هفتگی نوشت؟

  1. #1

    Question چطور میشه برنامه هفتگی نوشت؟

    الان چند روزه که روی این برنامه دارم معلق میزنم

    یه شرکتی، واسه هر هفته از سال، برنامه کاری مینویسه مثلا واسه هفته 22 امسال فلان کار انجام بشه، واسه هفته 12 امسال فلان کارها...

    حالا من میخوام عدد هفته سال، رو بگیرم تشخیص بدم که اون هفته از چه تاریخی شروع میشه و تا چه تاریخی ادامه داره. تا واسه هر روز از اون هفته یه برنامه کاری ثبت کنم.
    کسی میتونه کمکی کنه ؟ راستی لازمه که اولین روز سال رو هم داشته باشم یا نه ؟

  2. #2
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران سرای من است
    پست
    2,655

    نقل قول: چطور میشه برنامه هفتگی نوشت؟

    سلام
    خوب از اول سال تا هفته مورد نظر را به روز تبدیل کرده سپس این مقدار روز را به ماه و باقیمانده را روز مربوط به اون تاریخ در نظر بگیرید.

  3. #3

    نقل قول: چطور میشه برنامه هفتگی نوشت؟

    اگر تاریخ شروع اولین هفته را داشته باشیم باید به ازای هر هفته به این تاریخ 7 روز اضافه کنیم مثلا هفته 30 ام باید 29*7 یعنی 203 روز


    Function adddate(date1 As Long, k As Long, kabiseh As Boolean) As Long
    If date1 Mod 10000 = 1229 And kabiseh Then
    adddate = (date1 \ 10000) * 10000 + 1230
    Else
    adddate = num2year(year2num(date1) + k)
    End If
    End Function
    Function num2year(k As Long) As Long
    Dim i As Long
    Dim d As Long
    Dim m As Long
    Dim Y As Long
    Y = (k \ 365)
    i = k - (Y * 365)
    If i = 0 Then
    num2year = (Y * 10000) + 12 * 100 + 29
    Else
    If i > 186 Then
    If i - 186 - (((i - 186) \ 30) * 30) = 0 Then
    m = 6 + ((i - 186) \ 30)
    d = 30
    Else
    m = 6 + ((i - 186) \ 30) + 1
    d = i - 186 - (((i - 186) \ 30) * 30)
    End If
    Else
    If i - ((i \ 31) * 31) = 0 Then
    m = (i \ 31)
    d = 31
    Else
    m = (i \ 31) + 1
    d = i - ((i \ 31) * 31)
    End If
    End If
    num2year = (Y + 1) * 10000 + m * 100 + d
    End If
    End Function


  4. #4

    نقل قول: چطور میشه برنامه هفتگی نوشت؟

    میتونید از خواص DateTime استفاده کنید
    توی مثال زیر هفته اول همون هفته ای است که روز اول سال در اون قرار داره.

    DateTime StartDate = new DateTime(2009, 1, 1);
    int FirstWeekRemain = 7 - Convert.ToInt16(StartDate.DayOfWeek);

    DateTime WeekFirst, weekEnd;
    int WeekNumber;

    WeekNumber = 22;
    WeekNumber--;
    WeekFirst = StartDate.AddDays(--WeekNumber * 7 + FirstWeekRemain);
    weekEnd = WeekFirst.AddDays(6);
    MessageBox.Show(WeekFirst.ToString());
    MessageBox.Show(weekEnd.ToString());
    برای تاریخ شمسی هم میتونید از همین روش استفاده کنید

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

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