C# 自然周,月,季度计算。
/// <summary>
/// 判断时间是否和服务器时间是一天
/// </summary>
/// <param name="cs"></param>
/// <returns></returns>
public static bool JudgeTimeIsToDay(DateTime cs)
{
DateTime start = Convert.ToDateTime(cs.ToShortDateString());
DateTime end = Convert.ToDateTime(DateTime.Now.ToShortDateString());
TimeSpan sp = end.Subtract(start);
;
}
/// <summary>
/// 计算当前季度多少天
/// </summary>
/// <returns></returns>
public static int DateDiff()
{
DateTime start = Convert.ToDateTime(ToFirstDayOfSeason().ToShortDateString());
DateTime end = Convert.ToDateTime(ToLastDayOfSeason().ToShortDateString());
TimeSpan sp = end.Subtract(start);
return sp.Days;
}
/// <summary>
/// 计算当前月有多少天
/// </summary>
/// <returns></returns>
public static int GetMonthDays()
{
return System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
}
/// <summary>
/// 计算本周的周一日期
/// </summary>
/// <returns></returns>
public static DateTime GetMondayDate()
{
return GetMondayDate(DateTime.Now);
}
/// <summary>
/// 计算本周周日的日期
/// </summary>
/// <returns></returns>
public static DateTime GetSundayDate()
{
return GetSundayDate(DateTime.Now);
}
/// <summary>
/// 获取本月最后一天
/// </summary>
/// <param name="datetime"></param>
/// <returns></returns>
public static DateTime LastDayOfMonth()
{
- DateTime.Now.Day).AddMonths().AddDays(-);
}
/// <summary>
/// 计算本月的第一天
/// </summary>
/// <returns></returns>
public static DateTime FirstDayOfMonth()
{
- DateTime.Now.Day);
}
/// <summary>
/// 获取该时间所在季度的第一天
/// </summary>
/// <returns></returns>
public static DateTime ToFirstDayOfSeason()
{
return ToFirstDayOfSeason(DateTime.Now);
}
/// <summary>
/// 获取该时间所在季度的最后一天
/// </summary>
/// <returns></returns>
public static DateTime ToLastDayOfSeason()
{
return ToLastDayOfSeason(DateTime.Now);
}
/// <summary>
/// 获取该时间所在季度的第一天
/// </summary>
/// <param name="target"></param>
/// <returns></returns>
public static DateTime ToFirstDayOfSeason(DateTime target)
{
int ThisMonth = DateTime.Now.Month;
== ? : (ThisMonth % )) + ;
target = target.AddMonths(FirstMonthOfSeason - ThisMonth);
return Convert.ToDateTime(target.ToString("yyyy-MM-01 HH:mm:ss"));
}
/// <summary>
/// 获取该时间所在季度的最后一天
/// </summary>
/// <param name="target"></param>
/// <returns></returns>
public static DateTime ToLastDayOfSeason(DateTime target)
{
int ThisMonth = DateTime.Now.Month;
== ? : (ThisMonth % )) + ;
target = target.AddMonths(FirstMonthOfSeason - ThisMonth);
).ToString();
}
/// <summary>
/// 计算本月的第一天
/// </summary>
/// <returns></returns>
public static DateTime FirstDayOfMonth(DateTime datetime)
{
- datetime.Day);
}
/// <summary>
/// 获取本月最后一天
/// </summary>
/// <param name="datetime"></param>
/// <returns></returns>
public static DateTime LastDayOfMonth(DateTime datetime)
{
- datetime.Day).AddMonths().AddDays(-);
}
/// <summary>
/// 计算某日起始日期(礼拜一的日期)
/// </summary>
/// <param name="someDate">该周中任意一天</param>
/// <returns>返回礼拜一日期,后面的具体时、分、秒和传入值相等</returns>
public static DateTime GetMondayDate(this DateTime someDate)
{
int i = someDate.DayOfWeek - DayOfWeek.Monday;
) i = ;// i值 > = 0 ,因为枚举原因,Sunday排在最前,此时Sunday-Monday=-1,必须+7=6。
TimeSpan ts = , , );
return someDate.Subtract(ts);
}
/// <summary>
/// 计算某日结束日期(礼拜日的日期)
/// </summary>
/// <param name="someDate">该周中任意一天</param>
/// <returns>返回礼拜日日期,后面的具体时、分、秒和传入值相等</returns>
public static DateTime GetSundayDate(this DateTime someDate)
{
int i = someDate.DayOfWeek - DayOfWeek.Sunday;
) i = - i;// 因为枚举原因,Sunday排在最前,相减间隔要被7减。
TimeSpan ts = , , );
return someDate.Add(ts);
}
public static DateTime GetSundayDate(this DateTime someDate, int hour, int minute, int second)
{
int i = someDate.DayOfWeek - DayOfWeek.Sunday;
) i = - i;// 因为枚举原因,Sunday排在最前,相减间隔要被7减。
TimeSpan ts = , , );
var ret = someDate.Add(ts);
ret = ret.AddHours(hour - ret.Hour);
ret = ret.AddMinutes(minute - ret.Minute);
ret = ret.AddSeconds(second - ret.Second);
return ret;
}
C# 自然周,月,季度计算。的更多相关文章
- java获取当前时间的年周月季度等的开始结束时间
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created b ...
- mysql中增加某一时间段内的时间数据(包含:时间、年、月、日、第几周、季度)
创建表dim_date: create table `dim_date` ( `year` int (20), `month` int (20), `day` int (20), `week` int ...
- MySql查询日周月
常用计算日期的函数 日 date(日期) = CURDATE() 自然周 YEARWEEK(date_format(日期,'%Y-%m-%d') , 1) = YEARWEEK(now() , 1) ...
- JS判断,今天所在季度,第几周, 季度的第几周,年度第几周
<html> <head> <title>日期判断 周 月 季 年</title> <script type="text/javascr ...
- Flex自定义组件开发之日周月日期选择日历控件
原文:Flex自定义组件开发之日周月日期选择日历控件 使用过DateField的我们都知道,DateField 控件是用于显示日期的文本字段,字段右侧带有日历图标.当用户在控件边框内的 ...
- pg按日,周,月进行数据统计
pg数据库按周,月统计数据 SELECT date_trunc('WEEK', insert_time) as insertDate, SUM(data_increment) as dataTotal ...
- 按年、季度、月分组&&计算日期和时间的函数
Mysql 按年.季度.月分组 按月度分组: select DATE_FORMAT(i.created_at, '%Y-%m月')...................GROUP BY DATE_FO ...
- 自然周与自然月的Hive统计SQL
按照周或者月统计活跃数: 周: SELECT week, COUNT(DISTINCT pin), business_type FROM ( SELECT DISTINCT user_log_acct ...
- PHP计算多少秒/分/时/天/周/月/年之前 : timeago
function timeago( $ptime ) { $etime = time() - $ptime; if ($etime < 59) return '刚刚'; $interval = ...
随机推荐
- UWP 带左右滚动按钮的横向ListView———仿NetFlix首页河的设计
也是之前写的控件了,模仿NetFlix的河的设计. 大体要求如下: 1. 横向的ListView 2. 左右按钮,可以左右移动河卡片,左右的滚动条不可见 3. 左右按钮仅在鼠标Hover事件中可见 大 ...
- LeetCode刷题总结-数组篇(下)
本期讲O(n)类型问题,共14题.3道简单题,9道中等题,2道困难题.数组篇共归纳总结了50题,本篇是数组篇的最后一篇.其他三个篇章可参考: LeetCode刷题总结-数组篇(上),子数组问题(共17 ...
- VueI18n - 多语言国际化支持插件
VueI18n介绍 vue-i18n是一个vue组件,主要功能是提供国际化多语言的支持.例如项目中打印收费单功能,需要支持中英文打印,使用该组件就很容易的实现,而不必写两份打印单页面. 使用方法 安装 ...
- MyBatis批量更新动态sql
<update id="updateDataKetState"> update ${tablespace}.IDEA_DATAKEY_STATE <trim pr ...
- 二、netcore跨平台之 Linux部署nginx代理webapi
上一章,我们讲了在linux上安装netcore环境,以及让netcore在linux上运行. 这一章我们开始讲在linux上配置nginx,以及让nginx反向代理我们的webapi. 什么ngin ...
- Spark性能优化指南——基础篇(转)
[转]Spark性能优化指南——基础篇 http://mp.weixin.qq.com/s?__biz=MjM5NDMwNjMzNA==&mid=2651805828&idx=1&am ...
- java编程思想第四版第十三章字符串 习题
fas 第二题 package net.mindview.strings; import java.util.ArrayList; import java.util.List; /** * 无限循环 ...
- nyoj 108-士兵杀敌(一)(数学)
108-士兵杀敌(一) 内存限制:64MB 时间限制:1000ms 特判: No 通过数:60 提交数:221 难度:3 题目描述: 南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的. ...
- 力扣(LeetCode)长按键入 个人题解
你的朋友正在使用键盘输入他的名字 name.偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次. 你将会检查键盘输入的字符 typed.如果它对应的可能是你的朋友的名字(其中一 ...
- 《JAVA 程序员面试宝典(第四版)》读书笔记之前言
工作五年了一直在小的软件公司混,总感觉自己的专业知识没有太大的提升.当然了中间也换了一两家公司,面试的公司就很多家,总感觉正规的软件公司(无论大小)对于基础知识的考核都非常重视,而不管你说你之前服务过 ...