C#-时间相关的接口

简介: 需求客户端要统计每一年每一周的盈亏记录 思路客户端请求: 如果本地没有记录则发送给服务器当前时间,服务器去计算最新一周的数据,如果本地有记录则发送给服务器当前一周第一天的日期服务器响应: 服务器返回年、周、这一周的日期以及每一天的盈亏记录...

需求

客户端要统计每一年每一周的盈亏记录
这里写图片描述

思路

  • 客户端请求:
    如果本地没有记录则发送给服务器当前时间,服务器去计算最新一周的数据,如果本地有记录则发送给服务器当前一周第一天的日期
  • 服务器响应:
    服务器返回年、周、这一周的日期以及每一天的盈亏记录和这一周的总赢亏记录

测试代码

日期相关的处理代码

var time = DateTime.Now;
var year = time.Year;
string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
int weeknow = Convert.ToInt32(time.DayOfWeek);
string week = Day[Convert.ToInt32(weeknow.ToString("d"))].ToString();

GregorianCalendar gc = new GregorianCalendar();

int weekOfYear = gc.GetWeekOfYear(time, CalendarWeekRule.FirstDay, DayOfWeek.Monday);

int daydiff = (-1) * weeknow;  
string FirstDay = time.AddDays(daydiff).ToString("yyyy-MM-dd");

Debug.LogError(string.Format("当前时间:{0} 是{1}年 第{2}周 {3} 这一周的第一天日期:{4}", time, year, weekOfYear, week, FirstDay));

var month = time.Month;
var day = time.Day;

Debug.LogError(string.Format("日期:{0:00}.{1:00}", month, day));

DateTime startWeek = time.AddDays(1 - Convert.ToInt32(time.DayOfWeek.ToString("d")));  //本周周一
DateTime endWeek = startWeek.AddDays(6);  //本周周日
Debug.LogError(string.Format("本周第一天:{0} 最后一天:{1}", startWeek, endWeek));

DateTime nexeWeekFirstDay = startWeek.AddDays(-7);
Debug.LogError(string.Format("上一周的第一天:{0}", nexeWeekFirstDay));

结果

这里写图片描述

备注

去掉小时分钟,直接DateTime对象.Date属性只会保留日期,时分秒默认都会置0

unity交流群

QQ群
unity3d unity 游戏开发

相关文章
|
6月前
|
达摩院 Linux API
阿里达摩院MindOpt求解器V1.1新增C#接口
阿里达摩院MindOpt求解器发布最新版本V1.1,增加了C#相关API和文档。优化求解器产品是求解优化问题的专业计算软件,可广泛各个行业。阿里达摩院从2019年投入自研MindOpt优化求解器,截止目前经历27个版本的迭代,取得了多项国内和国际第一的成绩。就在上个月,2023年12月,在工信部产业发展促进中心等单位主办的首届能源电子产业创新大赛上,MindOpt获得电力用国产求解器第一名。本文将为C#开发者讲述如何下载安装MindOpt和C#案例源代码。
213 3
阿里达摩院MindOpt求解器V1.1新增C#接口
|
6月前
|
IDE C# 开发工具
C#系列之接口介绍
C#系列之接口介绍
|
6月前
|
编译器 C# 开发者
C# 11.0中的新特性:覆盖默认接口方法
C# 11.0进一步增强了接口的灵活性,引入了覆盖默认接口方法的能力。这一新特性允许类在实现接口时,不仅可以提供接口中未实现的方法的具体实现,还可以覆盖接口中定义的默认方法实现。本文将详细介绍C# 11.0中接口默认方法覆盖的工作原理、使用场景及其对现有代码的影响,帮助开发者更好地理解和应用这一新功能。
|
6月前
|
安全 C# 开发者
C#中的默认接口方法:接口演化的新篇章
【1月更文挑战第11天】本文探讨了C# 8.0中引入的默认接口方法,这一特性允许在接口中定义具有默认实现的方法。文章介绍了默认接口方法的语法、使用场景,以及它们如何影响接口的设计和实现,同时讨论了默认接口方法带来的好处和潜在的陷阱。
|
1月前
|
C#
C# 接口(Interface)
接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么做" 部分。 接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。 接口使得实现接口的类或结构在形式上保持一致。 抽象类在某种程度上与接口类似,但是,它们大多只是用在当只有少数方法由基类声明由派生类实现时。 接口本身并不实现任何功能,它只是和声明实现该接口的对象订立一个必须实现哪些行为的契约。 抽象类不能直接实例化,但允许派生出具体的,具有实际功能的类。
49 9
|
2月前
|
C# 索引
C# 一分钟浅谈:接口与抽象类的区别及使用
【9月更文挑战第2天】本文详细对比了面向对象编程中接口与抽象类的概念及区别。接口定义了行为规范,强制实现类提供具体实现;抽象类则既能定义抽象方法也能提供具体实现。文章通过具体示例介绍了如何使用接口和抽象类,并探讨了其实现方式、继承限制及实例化差异。最后总结了选择接口或抽象类应基于具体设计需求。掌握这两者有助于编写高质量的面向对象程序。
118 5
|
3月前
|
API C# 数据库
SemanticKernel/C#:实现接口,接入本地嵌入模型
SemanticKernel/C#:实现接口,接入本地嵌入模型
83 1
|
3月前
|
C#
C# 面向对象编程(三)——接口/枚举类型/泛型
C# 面向对象编程(三)——接口/枚举类型/泛型
35 0
|
6月前
|
前端开发 API C#
C# 接口
C# 接口
43 1
|
设计模式 自然语言处理 C#
C#OOP之八 继承 接口和抽象类
C#OOP之八 继承 接口和抽象类
50 0