添加VS项目

master
ruyu 7 years ago
parent 67e4274992
commit 97d555c778

@ -0,0 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.6.0" />
<PackageReference Include="xunit" Version="2.3.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DateTimeStudy\DateTimeStudy.csproj" />
</ItemGroup>
</Project>

@ -0,0 +1,73 @@
using System;
using Xunit;
namespace DateTimeStudy.XUnitTest
{
public class DateTimeStudyTest:IDisposable
{
/// <summary>
/// 构造函数:单元测试前的准备
/// </summary>
public DateTimeStudyTest()
{
}
[Fact]
public void Test1()
{
Assert.Equal(1, 1.0);
}
[Fact]
public void CreateDateTimeDefaultTest()
{
DateTimeStudy sudy = new DateTimeStudy();
//无参时间:0001年1月1日 0时 0分 0秒
var time = sudy.CreateDateTime();
Assert.True(time.Year==1 && time.Month==1 && time.Day==1 && time.Hour==0 && time.Minute==0 && time.Second==0 && time.Millisecond==0);
Assert.True(time.Kind == DateTimeKind.Unspecified);
}
[Fact]
public void CreateDateTime4TicksTest()
{
DateTimeStudy sudy = new DateTimeStudy();
//UTC时间:2018-01-01
long ticks = 636503616000000000;
var time = sudy.CreateDateTime(ticks);
Assert.True(time.Year == 2018 && time.Month == 1 && time.Day == 1 && time.Hour == 0 && time.Minute == 0 && time.Second == 0 && time.Millisecond == 0);
Assert.True(new DateTime(2018, 1, 1, 0, 0, 0, DateTimeKind.Local) == time);
Assert.True(time.Kind == DateTimeKind.Unspecified);
}
[Fact]
public void CreateDateTimeTest4()
{
DateTimeStudy sudy = new DateTimeStudy();
//UTC时间:2018-01-01
long ticks = 636503616000000000;
var time = sudy.CreateDateTime(ticks, DateTimeKind.Utc);
var time2 = sudy.CreateDateTime(ticks, DateTimeKind.Local);
//这很奇怪:竟然相等
Assert.Equal<DateTime>(time, time2);
Assert.True(time.Year == 2018 && time.Month == 1 && time.Day == 1 && time.Hour == 0 && time.Minute == 0 && time.Second == 0 && time.Millisecond == 0);
Assert.True(time2.Year == 2018 && time2.Month == 1 && time2.Day == 1 && time2.Hour == 0 && time2.Minute == 0 && time2.Second == 0 && time2.Millisecond == 0);
Assert.True(new DateTime(2018, 1, 1, 0, 0, 0, DateTimeKind.Local) == time);
Assert.True(new DateTime(2018, 1, 1, 0, 0, 0, DateTimeKind.Utc) == time);
Assert.True(new DateTime(2018, 1, 1, 0, 0, 0, DateTimeKind.Local) == time2);
Assert.True(new DateTime(2018, 1, 1, 0, 0, 0, DateTimeKind.Utc) == time2);
Assert.True(time.Kind == DateTimeKind.Utc);
Assert.True(time2.Kind == DateTimeKind.Local);
}
/// <summary>
/// 相当于析构函数:单元测试收尾清理
/// </summary>
public void Dispose()
{
}
}
}

@ -0,0 +1,31 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27428.2037
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DateTimeStudy", "DateTimeStudy\DateTimeStudy.csproj", "{98679A2E-DBD2-4114-9708-64C5D89DA2B3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DateTimeStudy.XUnitTest", "DateTimeStudy.XUnitTest\DateTimeStudy.XUnitTest.csproj", "{38E899C0-095E-423A-B744-2806251E7C8D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{98679A2E-DBD2-4114-9708-64C5D89DA2B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{98679A2E-DBD2-4114-9708-64C5D89DA2B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{98679A2E-DBD2-4114-9708-64C5D89DA2B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{98679A2E-DBD2-4114-9708-64C5D89DA2B3}.Release|Any CPU.Build.0 = Release|Any CPU
{38E899C0-095E-423A-B744-2806251E7C8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{38E899C0-095E-423A-B744-2806251E7C8D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{38E899C0-095E-423A-B744-2806251E7C8D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{38E899C0-095E-423A-B744-2806251E7C8D}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {EA58FCD3-3D43-46F8-8245-F8D16443AE8F}
EndGlobalSection
EndGlobal

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace DateTimeStudy
{
/// <summary>
/// DateTime扩展类
/// </summary>
public class DateTimeExtensions
{
}
}

@ -0,0 +1,113 @@
using System;
namespace DateTimeStudy
{
/// <summary>
/// DateTime学习
/// 全球时间
/// </summary>
/// <example>http://www.cnblogs.com/artech/archive/2010/09/04/InsideDateTime_01.html</example>
public class DateTimeStudy
{
#region 1、你是否知道System.DateTimeKind
/*
System.DateTimeclassstruct
DateTimeKindKind
System.DateTimeKindDateTimeKindUnspecifiedUtcLocal
UTCUnspecified
*/
/* DateTimeKind
[Serializable, ComVisible(true)]
public enum DateTimeKind
{
Unspecified,
Utc,
Local
}
*/
/*
DateTimeKind
KindKindDateTimeSpecifyKindDateTimeKindDateTimeDateTimeDateTimeKind
*/
/// <summary>
/// 创建时间
/// 无参数
/// </summary>
public DateTime CreateDateTime()
{
return new DateTime();
}
/// <summary>
/// 创建时间
/// ticks
/// </summary>
public DateTime CreateDateTime(long ticks)
{
return new DateTime(ticks);
}
/// <summary>
/// 创建时间
/// ticks和DateTimeKind
/// </summary>
public DateTime CreateDateTime(long ticks, DateTimeKind kind)
{
return new DateTime(ticks,kind);
}
/// <summary>
/// 创建时间
/// 年 月 日 时 分 秒
/// </summary>
public DateTime CreateDateTime(int year, int month, int day, int hour, int minute, int second)
{
return new DateTime(year, month, day, hour, minute, second);
}
/// <summary>
/// 创建时间
/// 年 月 日 时 分 秒 DateTimeKind
/// </summary>
public DateTime CreateDateTime(int year, int month, int day, int hour, int minute, int second, DateTimeKind kind)
{
return new DateTime(year, month, day, hour, minute, second, kind);
}
/// <summary>
/// 创建时间
/// 年 月 日 时 分 秒 豪秒
/// </summary>
public DateTime CreateDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond)
{
return new DateTime(year, month, day, hour, minute, second, millisecond);
}
/// <summary>
/// 创建时间
/// 年 月 日 时 分 秒 豪秒 DateTimeKind
/// </summary>
public DateTime CreateDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, DateTimeKind kind)
{
return new DateTime(year, month, day, hour, minute, second, millisecond, kind);
}
#endregion
#region 2、几个常用DateTime对象的DateTimeKind
#endregion
#region 3、DateTime的对等性问题
#endregion
#region 4、通过DateTime类型的ToLocalTime和ToUniversalTime方法实现UTC和Local的转换
#endregion
#region 5、通过TimeZoneInfo实现Utc和Local的转换
#endregion
}
}

@ -0,0 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>
Loading…
Cancel
Save