full
This commit is contained in:
parent
e17dc4eddd
commit
54ef8a2c4d
BIN
DatesLibrary/.DS_Store
vendored
Normal file
BIN
DatesLibrary/.DS_Store
vendored
Normal file
Binary file not shown.
64
DatesLibrary/Calculations.cs
Normal file
64
DatesLibrary/Calculations.cs
Normal file
@ -0,0 +1,64 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace DatesLibrary;
|
||||
|
||||
public class Calculations
|
||||
{
|
||||
public static string[] AvailablePeriods(
|
||||
TimeSpan[] startTimes,
|
||||
int[] durations,
|
||||
TimeSpan beginWorkingTime,
|
||||
TimeSpan endWorkingTime,
|
||||
int consultationTime)
|
||||
{
|
||||
List<string> availablePeriods = new();
|
||||
TimeSpan workTime = beginWorkingTime;
|
||||
int i = 0;
|
||||
|
||||
while (workTime < endWorkingTime)
|
||||
{
|
||||
TimeSpan nextBusyStart = (i < startTimes.Length) ? startTimes[i] : endWorkingTime;
|
||||
int availableMinutes = (int)(nextBusyStart - workTime).TotalMinutes;
|
||||
|
||||
if (availableMinutes < consultationTime)
|
||||
{
|
||||
if (i < startTimes.Length)
|
||||
{
|
||||
workTime = startTimes[i].Add(TimeSpan.FromMinutes(durations[i]));
|
||||
i++;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
while (availableMinutes >= consultationTime)
|
||||
{
|
||||
TimeSpan nextAvailableEnd = workTime.Add(TimeSpan.FromMinutes(consultationTime));
|
||||
|
||||
if (nextAvailableEnd > endWorkingTime)
|
||||
break;
|
||||
|
||||
availablePeriods.Add($"{workTime:hh\\:mm}-{nextAvailableEnd:hh\\:mm}");
|
||||
|
||||
workTime = nextAvailableEnd;
|
||||
availableMinutes -= consultationTime;
|
||||
}
|
||||
|
||||
if (i < startTimes.Length)
|
||||
{
|
||||
workTime = startTimes[i].Add(TimeSpan.FromMinutes(durations[i]));
|
||||
i++;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return availablePeriods.ToArray();
|
||||
}
|
||||
}
|
9
DatesLibrary/DatesLibrary.csproj
Normal file
9
DatesLibrary/DatesLibrary.csproj
Normal file
@ -0,0 +1,9 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
23
DatesLibrary/bin/Debug/net8.0/DatesLibrary.deps.json
Normal file
23
DatesLibrary/bin/Debug/net8.0/DatesLibrary.deps.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v8.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v8.0": {
|
||||
"DatesLibrary/1.0.0": {
|
||||
"runtime": {
|
||||
"DatesLibrary.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"DatesLibrary/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
BIN
DatesLibrary/bin/Debug/net8.0/DatesLibrary.dll
Normal file
BIN
DatesLibrary/bin/Debug/net8.0/DatesLibrary.dll
Normal file
Binary file not shown.
BIN
DatesLibrary/bin/Debug/net8.0/DatesLibrary.pdb
Normal file
BIN
DatesLibrary/bin/Debug/net8.0/DatesLibrary.pdb
Normal file
Binary file not shown.
66
DatesLibrary/obj/DatesLibrary.csproj.nuget.dgspec.json
Normal file
66
DatesLibrary/obj/DatesLibrary.csproj.nuget.dgspec.json
Normal file
@ -0,0 +1,66 @@
|
||||
{
|
||||
"format": 1,
|
||||
"restore": {
|
||||
"/Users/feitanportor/dev/C#/demo5/DatesLibrary/DatesLibrary.csproj": {}
|
||||
},
|
||||
"projects": {
|
||||
"/Users/feitanportor/dev/C#/demo5/DatesLibrary/DatesLibrary.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "/Users/feitanportor/dev/C#/demo5/DatesLibrary/DatesLibrary.csproj",
|
||||
"projectName": "DatesLibrary",
|
||||
"projectPath": "/Users/feitanportor/dev/C#/demo5/DatesLibrary/DatesLibrary.csproj",
|
||||
"packagesPath": "/Users/feitanportor/.nuget/packages/",
|
||||
"outputPath": "/Users/feitanportor/dev/C#/demo5/DatesLibrary/obj/",
|
||||
"projectStyle": "PackageReference",
|
||||
"configFilePaths": [
|
||||
"/Users/feitanportor/.nuget/NuGet/NuGet.Config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net8.0"
|
||||
],
|
||||
"sources": {
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net8.0": {
|
||||
"targetAlias": "net8.0",
|
||||
"projectReferences": {}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
},
|
||||
"restoreAuditProperties": {
|
||||
"enableAudit": "true",
|
||||
"auditLevel": "low",
|
||||
"auditMode": "direct"
|
||||
}
|
||||
},
|
||||
"frameworks": {
|
||||
"net8.0": {
|
||||
"targetAlias": "net8.0",
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48",
|
||||
"net481"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.402/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
15
DatesLibrary/obj/DatesLibrary.csproj.nuget.g.props
Normal file
15
DatesLibrary/obj/DatesLibrary.csproj.nuget.g.props
Normal file
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/Users/feitanportor/.nuget/packages/</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/Users/feitanportor/.nuget/packages/</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.12.2</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="/Users/feitanportor/.nuget/packages/" />
|
||||
</ItemGroup>
|
||||
</Project>
|
2
DatesLibrary/obj/DatesLibrary.csproj.nuget.g.targets
Normal file
2
DatesLibrary/obj/DatesLibrary.csproj.nuget.g.targets
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
|
@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
|
22
DatesLibrary/obj/Debug/net8.0/DatesLibrary.AssemblyInfo.cs
Normal file
22
DatesLibrary/obj/Debug/net8.0/DatesLibrary.AssemblyInfo.cs
Normal file
@ -0,0 +1,22 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("DatesLibrary")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e17dc4eddd001a6a849b2c0b6467413b04e28cf3")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("DatesLibrary")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("DatesLibrary")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
// Создано классом WriteCodeFragment MSBuild.
|
||||
|
@ -0,0 +1 @@
|
||||
9f2cd084273665ab8691af544f069687bf66e04af355e1209614edec18fc2db7
|
@ -0,0 +1,13 @@
|
||||
is_global = true
|
||||
build_property.TargetFramework = net8.0
|
||||
build_property.TargetPlatformMinVersion =
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = DatesLibrary
|
||||
build_property.ProjectDir = /Users/feitanportor/dev/C#/demo5/DatesLibrary/
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
@ -0,0 +1,8 @@
|
||||
// <auto-generated/>
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.IO;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Net.Http;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
BIN
DatesLibrary/obj/Debug/net8.0/DatesLibrary.assets.cache
Normal file
BIN
DatesLibrary/obj/Debug/net8.0/DatesLibrary.assets.cache
Normal file
Binary file not shown.
@ -0,0 +1 @@
|
||||
cde01dab5a47e056fc3edd6c6b4683dad92fa51c03d3237c72ac2ca324b5e5ef
|
@ -0,0 +1,11 @@
|
||||
/Users/feitanportor/dev/C#/demo5/DatesLibrary/bin/Debug/net8.0/DatesLibrary.deps.json
|
||||
/Users/feitanportor/dev/C#/demo5/DatesLibrary/bin/Debug/net8.0/DatesLibrary.dll
|
||||
/Users/feitanportor/dev/C#/demo5/DatesLibrary/bin/Debug/net8.0/DatesLibrary.pdb
|
||||
/Users/feitanportor/dev/C#/demo5/DatesLibrary/obj/Debug/net8.0/DatesLibrary.GeneratedMSBuildEditorConfig.editorconfig
|
||||
/Users/feitanportor/dev/C#/demo5/DatesLibrary/obj/Debug/net8.0/DatesLibrary.AssemblyInfoInputs.cache
|
||||
/Users/feitanportor/dev/C#/demo5/DatesLibrary/obj/Debug/net8.0/DatesLibrary.AssemblyInfo.cs
|
||||
/Users/feitanportor/dev/C#/demo5/DatesLibrary/obj/Debug/net8.0/DatesLibrary.csproj.CoreCompileInputs.cache
|
||||
/Users/feitanportor/dev/C#/demo5/DatesLibrary/obj/Debug/net8.0/DatesLibrary.dll
|
||||
/Users/feitanportor/dev/C#/demo5/DatesLibrary/obj/Debug/net8.0/refint/DatesLibrary.dll
|
||||
/Users/feitanportor/dev/C#/demo5/DatesLibrary/obj/Debug/net8.0/DatesLibrary.pdb
|
||||
/Users/feitanportor/dev/C#/demo5/DatesLibrary/obj/Debug/net8.0/ref/DatesLibrary.dll
|
BIN
DatesLibrary/obj/Debug/net8.0/DatesLibrary.dll
Normal file
BIN
DatesLibrary/obj/Debug/net8.0/DatesLibrary.dll
Normal file
Binary file not shown.
BIN
DatesLibrary/obj/Debug/net8.0/DatesLibrary.pdb
Normal file
BIN
DatesLibrary/obj/Debug/net8.0/DatesLibrary.pdb
Normal file
Binary file not shown.
BIN
DatesLibrary/obj/Debug/net8.0/ref/DatesLibrary.dll
Normal file
BIN
DatesLibrary/obj/Debug/net8.0/ref/DatesLibrary.dll
Normal file
Binary file not shown.
BIN
DatesLibrary/obj/Debug/net8.0/refint/DatesLibrary.dll
Normal file
BIN
DatesLibrary/obj/Debug/net8.0/refint/DatesLibrary.dll
Normal file
Binary file not shown.
71
DatesLibrary/obj/project.assets.json
Normal file
71
DatesLibrary/obj/project.assets.json
Normal file
@ -0,0 +1,71 @@
|
||||
{
|
||||
"version": 3,
|
||||
"targets": {
|
||||
"net8.0": {}
|
||||
},
|
||||
"libraries": {},
|
||||
"projectFileDependencyGroups": {
|
||||
"net8.0": []
|
||||
},
|
||||
"packageFolders": {
|
||||
"/Users/feitanportor/.nuget/packages/": {}
|
||||
},
|
||||
"project": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "/Users/feitanportor/dev/C#/demo5/DatesLibrary/DatesLibrary.csproj",
|
||||
"projectName": "DatesLibrary",
|
||||
"projectPath": "/Users/feitanportor/dev/C#/demo5/DatesLibrary/DatesLibrary.csproj",
|
||||
"packagesPath": "/Users/feitanportor/.nuget/packages/",
|
||||
"outputPath": "/Users/feitanportor/dev/C#/demo5/DatesLibrary/obj/",
|
||||
"projectStyle": "PackageReference",
|
||||
"configFilePaths": [
|
||||
"/Users/feitanportor/.nuget/NuGet/NuGet.Config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net8.0"
|
||||
],
|
||||
"sources": {
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net8.0": {
|
||||
"targetAlias": "net8.0",
|
||||
"projectReferences": {}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
},
|
||||
"restoreAuditProperties": {
|
||||
"enableAudit": "true",
|
||||
"auditLevel": "low",
|
||||
"auditMode": "direct"
|
||||
}
|
||||
},
|
||||
"frameworks": {
|
||||
"net8.0": {
|
||||
"targetAlias": "net8.0",
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48",
|
||||
"net481"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/8.0.402/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
8
DatesLibrary/obj/project.nuget.cache
Normal file
8
DatesLibrary/obj/project.nuget.cache
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "45rdrwaLYz4=",
|
||||
"success": true,
|
||||
"projectFilePath": "/Users/feitanportor/dev/C#/demo5/DatesLibrary/DatesLibrary.csproj",
|
||||
"expectedPackageFiles": [],
|
||||
"logs": []
|
||||
}
|
1
DatesLibrary/obj/project.packagespec.json
Normal file
1
DatesLibrary/obj/project.packagespec.json
Normal file
@ -0,0 +1 @@
|
||||
"restore":{"projectUniqueName":"/Users/feitanportor/dev/C#/demo5/DatesLibrary/DatesLibrary.csproj","projectName":"DatesLibrary","projectPath":"/Users/feitanportor/dev/C#/demo5/DatesLibrary/DatesLibrary.csproj","outputPath":"/Users/feitanportor/dev/C#/demo5/DatesLibrary/obj/","projectStyle":"PackageReference","originalTargetFrameworks":["net8.0"],"sources":{"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net8.0":{"targetAlias":"net8.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"}}"frameworks":{"net8.0":{"targetAlias":"net8.0","imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"/usr/local/share/dotnet/sdk/8.0.402/PortableRuntimeIdentifierGraph.json"}}
|
1
DatesLibrary/obj/rider.project.model.nuget.info
Normal file
1
DatesLibrary/obj/rider.project.model.nuget.info
Normal file
@ -0,0 +1 @@
|
||||
17411553227322059
|
1
DatesLibrary/obj/rider.project.restore.info
Normal file
1
DatesLibrary/obj/rider.project.restore.info
Normal file
@ -0,0 +1 @@
|
||||
17411553227322059
|
Loading…
Reference in New Issue
Block a user