static void Main(string[] args) { Application application = new Application(); application.DisplayAlerts = false; Workbook scheduleWorkbook = null; var startDate = DateTime.Now.Date; var endDate = startDate.AddMonths(1); try { scheduleWorkbook = application.Workbooks.Add(); var tat = new TatarstanWorkDayCalendar(TimeSpan.FromHours(10), TimeSpan.FromHours(18)); tat.EnsureInitializedAsync().Wait(); var workTimeCalculator = new WorkTimeCalculator(tat); Worksheet scheduleSheet = scheduleWorkbook.ActiveSheet; PrintDateRow(scheduleSheet, startDate, endDate); var schedule = workTimeCalculator.GetSchedule(startDate, new WorkTime(20, 0, 0)); PrintSchedule(scheduleSheet, 2, schedule); scheduleWorkbook.SaveAs(@"\C:\Users\almaz\OneDrive\Документы\test.xlsx"); } catch (Exception e) { Console.WriteLine(e); } finally { scheduleWorkbook?.Close(true); application.Quit(); Marshal.ReleaseComObject(application); } }
static void Main(string[] args) { try { var cmd = string.Join(" ", args); var workDayCalendar = new TatarstanWorkDayCalendar(TimeSpan.FromHours(10), TimeSpan.FromHours(18)); workDayCalendar.EnsureInitializedAsync().Wait(); var calculatorParser = new TimeCalculatorParser(workDayCalendar); var calculator = calculatorParser.Parse(cmd); var timeExpressionParser = new TimeExpressionParser(new TimeArgumentParser()); var timeExpr = timeExpressionParser.Parse(cmd); var calcMethodConverter = new CalcMethodConverter(calculator.GetType()); var calcMethod = calcMethodConverter.ConvertToCalcMethod(timeExpr); var result = calcMethod.Invoke(calculator, new[] { timeExpr.LeftOperand, timeExpr.RightOperand }); var objFormatter = new ObjectFormatter(); var output = objFormatter.FormatObject(result); Console.WriteLine(output); } catch (Exception e) { Console.WriteLine(e.Message); } }