C# function to calculate monthly start time for calendar app
$20-25 USD
Closed
Posted over 20 years ago
$20-25 USD
Paid on delivery
I need a C# (ASP.NET) functions:
protected DataView GetMonthlyStartEndTimes(DateTime StartDate, DateTime EndDate, SqlDataReader ScheduleDataReader)
This DataView will bind to a Calendar. Read the Deliverables section for the full description.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. 2) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request. 3) Complete ownership and distribution copyrights to all work purchased.
The DataView returned should contain the following fields:
ScheduleID
ScheduleName
StartDate
EndDate
As ScheduleDataReader is only a description of when the scheduled task can run,
you must calculate all the start dates/times and end dates/times for each scheduleid within the Start/End times passed.
INPUT DATA DESCRIPTION(SqlDataReader ScheduleDataReader)
(I've included field descriptions and possible values):
[ScheduleID] [int] IDENTITY - (Identification field for the schedule),
[StartTimeofDay] [datetime] - (values in format of: 1/1/1900 9:00:00 AM),
[EndTimeofDay] [datetime] - (values in format of: 1/1/1900 9:00:00 AM),
[Sunday] [bit] - (indicates whether the scheduled job runs on this day. values: 0 = unselected, 1 = selected. same for all the following bit fields),
[Monday] [bit] ,
[Tuesday] [bit] ,
[Wednesday] [bit] ,
[Thursday] [bit] ,
[Friday] [bit] ,
[Saturday] [bit] ,
[MonthlyOrdinal] [tinyint] (scheduled job runs on the x (M,Tu,W,Th,F,Sa, or Su) of the month. values: x = 1,2,3,4, or 5 (5 means the last (M,Tu,W,Th,F,Sa, or Su) of the month.)),
[MonthlyStartDate] [tinyint] (scheduled job runs on the x day of the month. values: x = 1 through 31),
[MonthlyEndDate] [tinyint] (not currently used, but column is still passed) ,
[January] [bit] - (indicates whether the scheduled job runs on this month. values: 0 = unselected, 1 = selected. same for all the following bit fields), ,
[February] [bit] ,
[March] [bit] ,
[April] [bit] ,
[May] [bit] ,
[June] [bit] ,
[July] [bit] ,
[August] [bit] ,
[September] [bit] ,
[October] [bit] ,
[November] [bit] ,
[December] [bit] ,
[FirstStartDate] [datetime] - (the first day the scheduled job is to start) ,
[ScheduleName] [varchar(100)] - ( the name of the schedule)
[OrganizationalUnitId] [int] - (the tree node the schedule is attached to)
Within the function do not use ordinals to refer to the variables in the SqlDataReader as there may be other fields that
are not needed for this function.
Some variations to deal with:
1.) If start time is later than end time this means that the start time is on one day and the end time is on the
following day.
2.) Both StartTimeofDay and EndTimeofDay have all days on 1/1/1900 but the time part is correct.
3.) Must take in account if the FirstStartDate is not null then make sure that you don't start the dates before then.
4.) We need all start end times calculated for the a date range beginning on StartDate and ending on EndDate.
5.) Must look for things like 2nd Tuesday and Wednesday. MonthlyOrdinal = 2 and Monday=1 and Tuesday=1
6.) Must handle range of dates like 17th through the 25th: MonthlyStartDate = 17 and MonthlyEndDate = 25
7.) They might only want it to run June, July and August: June = 1 July=1 and August = 1
## Platform
Windows 2000 ASP.NET and C#