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

نام تاپیک: شمارس روز

  1. #1

    شمارس روز

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

    مثلا اگر تاریخ چک روز20/9/90 بود و این چک پاس نشده بود رو تعداد روزش رو بگه مثلا بگه که10 روز یا 2 روز از تاریخ اصلی چک گذشته اینرو نشون بده واجبه ها دوستان عنایتی داشته باشند
    یا علی

  2. #2
    کاربر دائمی
    تاریخ عضویت
    آذر 1385
    محل زندگی
    همین نزدیکیها
    پست
    683

    نقل قول: شمارس روز

    اول باید جدول چک ها رو بر اساس پاس نشده و قبل از تاریخ روز فیلتر کنی
    بعدش میتونی از این پروسیجر استفاده کنی و مقدار های ماه و روز فعلی رو و ماه و روز چک رو بهش بدی حساب کنه بگه چند روز مانده بعد نشون بدی


    public int checkday(int check_day,int check_mah,int now_day, int now_mah)
    {
    int gday=0;
    if (now_day < check_day)
    {
    if (now_mah > check_mah)
    {
    gday = (((now_mah - check_mah) * 30)-check_day)+now_day;
    }
    }
    else
    {
    gday = gday + (now_day - check_day);
    if (now_mah > check_mah)
    gday = gday + (now_mah - check_mah) * 30;
    }
     
     
    return gday;
    }

  3. #3

    نقل قول: شمارس روز

    میتونی این تابع را تو C#‎ پیاده ساری کنی
    USE [xxx]
    GO
    /****** Object: UserDefinedFunction [dbo].[ShamsiDateDiff] Script Date: 12/15/2011 17:32:31 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO


    ALTER FUNCTION [dbo].[ShamsiDateDiff] (@PDate1 nvarchar(12),@PDate2 nvarchar(12))
    RETURNS bigint
    AS
    BEGIN
    DECLARE @ISLeap bit

    DECLARE @EYear as Integer
    DECLARE @EMonth as Integer
    DECLARE @EDay as Integer
    DECLARE @EAllDays as int

    set @EYear= cast((substring(@PDate2 ,0,5))as int)
    set @EMonth= cast((substring(@PDate2 ,6,2))as int)
    set @EDay= cast((substring(@PDate2 ,9,2))as int)

    DECLARE @SAllDays as int
    DECLARE @SYear as Integer
    DECLARE @SMonth as Integer
    DECLARE @SDay as Integer
    set @SYear= cast((substring(@PDate1 ,0,5))as int)
    set @SMonth= cast((substring(@PDate1 ,6,2))as int)
    set @SDay= cast((substring(@PDate1 ,9,2))as int)


    select @EAllDays = case when @EMonth <=6
    then (@EMonth-1)*31+@EDay
    else case when @EMonth >6 and @EMonth<=12
    then 6*31+ (@EMonth-7)*30+@EDay
    end
    end,
    @SAllDays = case when @SMonth <=6
    then (@SMonth-1)*31+@SDay
    else case when @SMonth >6 and @SMonth<=12
    then 6*31+ (@SMonth-7)*30+@SDay
    end
    end

    declare @diff int
    set @diff =@EAllDays-@SAllDays
    declare @i int set @i =0
    while @SYear+@i<@EYear
    begin
    select @diff= case
    when dbo.IsLeap(@SYear+@i)=1
    then @diff+366
    else @diff+365
    end
    set @i=@i+1
    end


    Return @diff
    end




  4. #4
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313

    نقل قول: شمارس روز

    نقل قول نوشته شده توسط worldvomputer مشاهده تاپیک
    با سلام خدمت دوستان من میخوام یه برنامه بنویسیم که تعداد روز چک تاریخ گذشته رو حساب کنه

    مثلا اگر تاریخ چک روز20/9/90 بود و این چک پاس نشده بود رو تعداد روزش رو بگه مثلا بگه که10 روز یا 2 روز از تاریخ اصلی چک گذشته اینرو نشون بده واجبه ها دوستان عنایتی داشته باشند
    یا علی
    در سی شارپ تاریخ را تبدیل کنید به میلادی از تاریخ امروز کم کنید همین!

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

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