initial commit
This commit is contained in:
@@ -0,0 +1,148 @@
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
using namespace std;
|
||||
|
||||
class datum {
|
||||
private:
|
||||
int tag;
|
||||
int monat;
|
||||
int jahr;
|
||||
bool schaltjahr;
|
||||
public:
|
||||
int getTag();
|
||||
int getMonat();
|
||||
int getJahr();
|
||||
int wochentag();
|
||||
//void setJahr(int);
|
||||
//void setMonat(int);
|
||||
//void setJahr(int);
|
||||
datum(int, int, int);
|
||||
datum();
|
||||
~datum();
|
||||
bool schaltjahrBestimmen(int);
|
||||
int kwBerechnen();
|
||||
void ausgeben();
|
||||
};
|
||||
|
||||
int datum::getTag()
|
||||
{
|
||||
return tag;
|
||||
}
|
||||
|
||||
int datum::getMonat()
|
||||
{
|
||||
return monat;
|
||||
}
|
||||
|
||||
int datum::getJahr()
|
||||
{
|
||||
return jahr;
|
||||
}
|
||||
|
||||
bool datum::schaltjahrBestimmen(int jahr) {
|
||||
bool sjahr = 0;
|
||||
if (!((jahr % 4) || !(jahr % 100)) || !((jahr % 4) || (jahr % 400)))
|
||||
bool sjahr = 1;
|
||||
return sjahr;
|
||||
}
|
||||
|
||||
datum::datum() {
|
||||
tag = 1;
|
||||
monat = 1;
|
||||
jahr = 2020;
|
||||
schaltjahr = schaltjahrBestimmen(jahr);
|
||||
}
|
||||
|
||||
datum::datum(int t, int m, int j) {
|
||||
|
||||
tag = t;
|
||||
monat = m;
|
||||
jahr = j;
|
||||
schaltjahr = schaltjahrBestimmen(j);
|
||||
|
||||
}
|
||||
|
||||
datum::~datum() {
|
||||
|
||||
}
|
||||
|
||||
void datum::ausgeben() {
|
||||
cout << tag << " tag " << monat << " Monat " << jahr << " Jahr " << schaltjahr << endl;
|
||||
}
|
||||
|
||||
int datum::wochentag()
|
||||
{
|
||||
string yearst = to_string(jahr);
|
||||
string cst = yearst.substr(0, 2);
|
||||
string yst = yearst.substr(2, 4);
|
||||
int y = stoi(yst);
|
||||
int c = stoi(cst);
|
||||
int d = tag;
|
||||
int m = monat;
|
||||
|
||||
if (m < 3)
|
||||
y--;
|
||||
|
||||
if (m == 1 || m == 2)
|
||||
m += 10;
|
||||
else
|
||||
m -= 2;
|
||||
|
||||
int w = (d + (int)(2.6 * m - 0.2) + y + (int)(y / 4) + (int)(c / 4) - 2 * c) % 7;
|
||||
if (w < 0)
|
||||
w += 7;
|
||||
|
||||
return w;
|
||||
}
|
||||
|
||||
int datum::kwBerechnen()
|
||||
{
|
||||
int monate[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
|
||||
int tage = 0;
|
||||
|
||||
if (monat == 1)
|
||||
tage = tag;
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < monat - 1; i++)
|
||||
tage += monate[i];
|
||||
tage += tag;
|
||||
}
|
||||
|
||||
if (schaltjahrBestimmen(jahr) == 1 && monat > 2)
|
||||
tage += 1;
|
||||
|
||||
|
||||
datum ersteJan(1, 1, jahr);
|
||||
int wochentagErste = ersteJan.wochentag();
|
||||
int offset = 0;
|
||||
int kw = 0;
|
||||
|
||||
if (wochentagErste < 4)
|
||||
offset = wochentagErste - 2;
|
||||
else
|
||||
offset = (8 - wochentagErste) % 7;
|
||||
kw += 1;
|
||||
|
||||
kw += ((tage + offset) / 7);
|
||||
|
||||
if (kw == 0)
|
||||
kw = 53;
|
||||
|
||||
if (kw == 53)
|
||||
{
|
||||
datum datum1(1, 1, jahr + 1);
|
||||
if (datum1.kwBerechnen() == 1 && datum1.wochentag() < 4)
|
||||
kw = 1;
|
||||
}
|
||||
|
||||
return kw;
|
||||
}
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
datum datum2(30, 12, 2019);
|
||||
int w = datum2.kwBerechnen();
|
||||
cout << "kw: " << w;
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="kwrechner.cpp" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>16.0</VCProjectVersion>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectGuid>{d382059b-b385-46ad-a1e7-ff03dbef2f72}</ProjectGuid>
|
||||
<RootNamespace>kwrechner</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Quelldateien">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Headerdateien">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Ressourcendateien">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="kwrechner.cpp">
|
||||
<Filter>Quelldateien</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,148 @@
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
using namespace std;
|
||||
|
||||
class datum {
|
||||
private:
|
||||
int tag;
|
||||
int monat;
|
||||
int jahr;
|
||||
bool schaltjahr;
|
||||
public:
|
||||
int getTag();
|
||||
int getMonat();
|
||||
int getJahr();
|
||||
int wochentag();
|
||||
//void setJahr(int);
|
||||
//void setMonat(int);
|
||||
//void setJahr(int);
|
||||
datum(int, int, int);
|
||||
datum();
|
||||
~datum();
|
||||
bool schaltjahrBestimmen(int);
|
||||
int kwBerechnen();
|
||||
void ausgeben();
|
||||
};
|
||||
|
||||
int datum::getTag()
|
||||
{
|
||||
return tag;
|
||||
}
|
||||
|
||||
int datum::getMonat()
|
||||
{
|
||||
return monat;
|
||||
}
|
||||
|
||||
int datum::getJahr()
|
||||
{
|
||||
return jahr;
|
||||
}
|
||||
|
||||
bool datum::schaltjahrBestimmen(int jahr) {
|
||||
bool sjahr = 0;
|
||||
if (!((jahr % 4) || !(jahr % 100)) || !((jahr % 4) || (jahr % 400)))
|
||||
bool sjahr = 1;
|
||||
return sjahr;
|
||||
}
|
||||
|
||||
datum::datum() {
|
||||
tag = 1;
|
||||
monat = 1;
|
||||
jahr = 2020;
|
||||
schaltjahr = schaltjahrBestimmen(jahr);
|
||||
}
|
||||
|
||||
datum::datum(int t, int m, int j) {
|
||||
|
||||
tag = t;
|
||||
monat = m;
|
||||
jahr = j;
|
||||
schaltjahr = schaltjahrBestimmen(j);
|
||||
|
||||
}
|
||||
|
||||
datum::~datum() {
|
||||
|
||||
}
|
||||
|
||||
void datum::ausgeben() {
|
||||
cout << tag << " tag " << monat << " Monat " << jahr << " Jahr " << schaltjahr << endl;
|
||||
}
|
||||
|
||||
int datum::wochentag()
|
||||
{
|
||||
string yearst = to_string(jahr);
|
||||
string cst = yearst.substr(0, 2);
|
||||
string yst = yearst.substr(2, 4);
|
||||
int y = stoi(yst);
|
||||
int c = stoi(cst);
|
||||
int d = tag;
|
||||
int m = monat;
|
||||
|
||||
if (m < 3)
|
||||
y--;
|
||||
|
||||
if (m == 1 || m == 2)
|
||||
m += 10;
|
||||
else
|
||||
m -= 2;
|
||||
|
||||
int w = (d + (int)(2.6 * m - 0.2) + y + (int)(y / 4) + (int)(c / 4) - 2 * c) % 7;
|
||||
if (w < 0)
|
||||
w += 7;
|
||||
|
||||
return w;
|
||||
}
|
||||
|
||||
int datum::kwBerechnen()
|
||||
{
|
||||
int monate[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
|
||||
int tage = 0;
|
||||
|
||||
if (monat == 1)
|
||||
tage = tag;
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < monat - 1; i++)
|
||||
tage += monate[i];
|
||||
tage += tag;
|
||||
}
|
||||
|
||||
if (schaltjahrBestimmen(jahr) == 1 && monat > 2)
|
||||
tage += 1;
|
||||
|
||||
|
||||
datum ersteJan(1, 1, jahr);
|
||||
int wochentagErste = ersteJan.wochentag();
|
||||
int offset = 0;
|
||||
int kw = 0;
|
||||
|
||||
if (wochentagErste < 4)
|
||||
offset = wochentagErste - 2;
|
||||
else
|
||||
offset = (8 - wochentagErste) % 7;
|
||||
kw += 1;
|
||||
|
||||
kw += ((tage + offset) / 7);
|
||||
|
||||
if (kw == 0)
|
||||
kw = 53;
|
||||
|
||||
if (kw == 53)
|
||||
{
|
||||
datum datum1(1, 1, jahr + 1);
|
||||
if (datum1.kwBerechnen() == 1 && datum1.wochentag()<4)
|
||||
kw = 1;
|
||||
}
|
||||
|
||||
return kw;
|
||||
}
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
datum datum2 (30, 12, 2019);
|
||||
int w = datum2.kwBerechnen();
|
||||
cout << "kw: " << w;
|
||||
}
|
||||
Reference in New Issue
Block a user