//====================================================================
//** Copyright © classbao.com 2016 -- QQ:1165458780 -- 请保留此注释 **
//====================================================================
// 文件名称:DateHelper.cs
// 项目名称:常用方法实用工具集
// 创建时间:2016年7月25日10时59分
// 创建人员:熊学浩
// 负 责 人:熊学浩
// 参与人员:熊学浩
// ===================================================================
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions; namespace DawnXZ.DawnUtility {
/// <summary>
/// 日期操作辅助类
/// </summary>
public static class DateHelper { #region 当前时间 /// <summary>
/// 返回当前时间的标准日期格式
/// </summary>
/// <returns>yyyy-MM-dd</returns>
public static string GetDate() {
return DateTime.Now.ToString("yyyy-MM-dd");
}
/// <summary>
/// 返回当前时间的标准时间格式string
/// </summary>
/// <returns>HH:mm:ss</returns>
public static string GetTime() {
return DateTime.Now.ToString("HH:mm:ss");
}
/// <summary>
/// 返回当前时间的标准时间格式string
/// </summary>
/// <returns>yyyy-MM-dd HH:mm:ss</returns>
public static string GetDateTime() {
return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
/// <summary>
/// 返回相对于当前时间的相对天数
/// </summary>
/// <param name="relativeday">增加的天数</param>
/// <returns>相对天数</returns>
public static string GetDateTimeOfDay(int relativeday) {
return DateTime.Now.AddDays(relativeday).ToString("yyyy-MM-dd HH:mm:ss");
}
/// <summary>
/// 返回相对于当前时间的相对分钟数
/// </summary>
/// <param name="relativeday">增加的分钟数</param>
/// <returns>相对分钟数</returns>
public static string GetDateTimeOfMinutes(int relativeday) {
return DateTime.Now.AddMinutes(relativeday).ToString("yyyy-MM-dd HH:mm:ss");
}
/// <summary>
/// 返回当前时间的标准时间格式
/// </summary>
/// <returns>yyyy-MM-dd HH:mm:ss:fffffff</returns>
public static string GetDateTimeF() {
return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fffffff");
} #endregion #region 时间转换 /// <summary>
/// 返回指定日期格式
/// </summary>
/// <param name="datetimestr">需要转换的时间</param>
/// <param name="replacestr">指定格式</param>
/// <returns>转换后的时间</returns>
public static string GetDate(string datetimestr, string replacestr) {
if (datetimestr == null) return replacestr;
if (datetimestr.Equals("")) return replacestr;
try {
datetimestr = Convert.ToDateTime(datetimestr).ToString("yyyy-MM-dd").Replace("1900-01-01", replacestr);
}
catch {
return replacestr;
}
return datetimestr;
}
/// <summary>
/// 转换时间为unix时间戳
/// </summary>
/// <param name="date">需要传递UTC时间,避免时区误差,例:DataTime.UTCNow</param>
/// <returns></returns>
public static double ConvertToUnixTimestamp(DateTime date) {
DateTime origin = new DateTime(, , , , , , );
TimeSpan diff = date - origin;
return Math.Floor(diff.TotalSeconds);
}
/// <summary>
/// 将8位日期型整型数据转换为日期字符串数据
/// 默认为英文格式
/// </summary>
/// <param name="date">整型日期</param>
/// <returns></returns>
public static string FormatDate(int date) {
return FormatDate(date, false);
}
/// <summary>
/// 将8位日期型整型数据转换为日期字符串数据
/// </summary>
/// <param name="date">整型日期</param>
/// <param name="chnType">是否以中文年月日输出</param>
/// <returns></returns>
public static string FormatDate(int date, bool chnType) {
string dateStr = date.ToString();
if (date <= || dateStr.Length != ) return dateStr;
if (chnType) return dateStr.Substring(, ) + "年" + dateStr.Substring(, ) + "月" + dateStr.Substring() + "日";
return dateStr.Substring(, ) + "-" + dateStr.Substring(, ) + "-" + dateStr.Substring();
} #endregion #region 标准时间 /// <summary>
/// 返回标准时间
/// </summary>
/// <param name="fDateTime">转换时间</param>
/// <param name="formatStr">转换格式</param>
/// <returns>转换后的时间</returns>
public static string GetStandardDateTime(string fDateTime, string formatStr) {
if (fDateTime == "0000-0-0 0:00:00") return fDateTime;
DateTime time = new DateTime(, , , , , , );
if (DateTime.TryParse(fDateTime, out time)) {
return time.ToString(formatStr);
}
else {
return "N/A";
}
}
/// <summary>
/// 返回标准时间 yyyy-MM-dd HH:mm:ss
/// </summary>
/// <param name="fDateTime">转换时间</param>
/// <returns>yyyy-MM-dd HH:mm:ss</returns>
public static string GetStandardDateTime(string fDateTime) {
return GetStandardDateTime(fDateTime, "yyyy-MM-dd HH:mm:ss");
}
/// <summary>
/// 返回标准时间 yyyy-MM-dd
/// </summary>
/// <param name="fDate">转换时间</param>
/// <returns>yyyy-MM-dd</returns>
public static string GetStandardDate(string fDate) {
return GetStandardDateTime(fDate, "yyyy-MM-dd");
} #endregion #region 返回相差 秒数、分钟数、小时数 /// <summary>
/// 返回相差的秒数
/// </summary>
/// <param name="time">时间字符串</param>
/// <param name="Sec">秒数</param>
/// <returns>相差的秒数</returns>
public static int DateOfDiffSeconds(string time, int Sec) {
if (string.IsNullOrEmpty(time)) return ;
DateTime dateTime = TypeHelper.StrToDateTime(time, DateTime.Parse("1900-01-01"));
if (dateTime.ToString("yyyy-MM-dd") == "1900-01-01") return ;
TimeSpan ts = DateTime.Now - dateTime.AddSeconds(Sec);
if (ts.TotalSeconds > int.MaxValue) {
return int.MaxValue;
}
else if (ts.TotalSeconds < int.MinValue) {
return int.MinValue;
}
return (int)ts.TotalSeconds;
}
/// <summary>
/// 返回相差的分钟数
/// </summary>
/// <param name="time">时间字符串</param>
/// <param name="minutes">分钟数</param>
/// <returns>相差的分钟数</returns>
public static int DateOfDiffMinutes(string time, int minutes) {
if (string.IsNullOrEmpty(time)) return ;
DateTime dateTime = TypeHelper.StrToDateTime(time, DateTime.Parse("1900-01-01"));
if (dateTime.ToString("yyyy-MM-dd") == "1900-01-01") return ;
TimeSpan ts = DateTime.Now - dateTime.AddMinutes(minutes);
if (ts.TotalMinutes > int.MaxValue) {
return int.MaxValue;
}
else if (ts.TotalMinutes < int.MinValue) {
return int.MinValue;
}
return (int)ts.TotalMinutes;
}
/// <summary>
/// 返回相差的小时数
/// </summary>
/// <param name="time">时间字符串</param>
/// <param name="hours">小时数</param>
/// <returns>相差的小时数</returns>
public static int DateOfDiffHours(string time, int hours) {
if (string.IsNullOrEmpty(time)) return ;
DateTime dateTime = TypeHelper.StrToDateTime(time, DateTime.Parse("1900-01-01"));
if (dateTime.ToString("yyyy-MM-dd") == "1900-01-01") return ;
TimeSpan ts = DateTime.Now - dateTime.AddHours(hours);
if (ts.TotalHours > int.MaxValue) {
return int.MaxValue;
}
else if (ts.TotalHours < int.MinValue) {
return int.MinValue;
}
return (int)ts.TotalHours;
} #endregion #region 时间格式检测 /// <summary>
/// 是否常规时间
/// </summary>
public static bool IsTime(string timeval) {
return Regex.IsMatch(timeval, @"^((([0-1]?[0-9])|(2[0-3])):([0-5]?[0-9])(:[0-5]?[0-9])?)$");
}
/// <summary>
/// 判断字符串是否是yy-mm-dd字符串
/// </summary>
/// <param name="str">待判断字符串</param>
/// <returns>判断结果</returns>
public static bool IsDateString(string str) {
return Regex.IsMatch(str, @"(\d{4})-(\d{1,2})-(\d{1,2})");
} #endregion #region 年 /// <summary>
/// 判断某年是否为闰年
/// </summary>
/// <param name="year">需要计算的年份</param>
/// <returns>是否为闰年</returns>
public static bool YearIsLeap(int year) {
if (year <= || year >= ) return false;
return DateTime.IsLeapYear(year);
}
/// <summary>
/// 计算某年共有多少天
/// </summary>
/// <param name="year">需要计算的年份</param>
/// <returns>共有多少天</returns>
public static int YearOfTotalDay(int year) {
if (year <= || year >= ) return -;
return YearOfLastDay(year).DayOfYear;
}
/// <summary>
/// 获得某年第一天的日期
/// </summary>
/// <param name="year">需要计算的年份</param>
/// <returns>第一天日期</returns>
public static DateTime YearOfFirstDay(int year) {
if (year <= || year >= ) return DateTime.MaxValue;
DateTime result = DateTime.MinValue;
DateTime.TryParse(string.Format("{0}-01-01", year), out result);
return result;
}
/// <summary>
/// 获得某年最后一天的日期
/// </summary>
/// <param name="year">需要计算的年份</param>
/// <returns>最后一天日期</returns>
public static DateTime YearOfLastDay(int year) {
if (year <= || year >= ) return DateTime.MaxValue;
DateTime result = DateTime.MaxValue;
DateTime.TryParse(string.Format("{0}-12-31", year), out result);
return result;
} #endregion #region 月 /// <summary>
/// 获得当前年当前月的总天数
/// </summary>
/// <returns>共有多少天</returns>
public static int MonthOfTotalDay() {
DateTime _now = DateTime.Now;
return DateTime.DaysInMonth(_now.Year, _now.Month);
}
/// <summary>
/// 获得某年某月的总天数
/// </summary>
/// <param name="year">需要计算的年份</param>
/// <param name="month">需要计算的月份</param>
/// <returns>共有多少天</returns>
public static int MonthOfTotalDay(int year, int month) {
if (year <= || year >= ) return -;
if (month < || month > ) return -;
return DateTime.DaysInMonth(year, month);
}
/// <summary>
/// 获得当前年当前月第一天的日期
/// </summary>
/// <returns>第一天日期</returns>
public static DateTime MonthOfFirstDay() {
DateTime _now = DateTime.Now;
return MonthOfFirstDay(_now.Year, _now.Month);
}
/// <summary>
/// 获得某年某月第一天的日期
/// </summary>
/// <param name="year">需要计算的年份</param>
/// <param name="month">需要计算的月份</param>
/// <returns>第一天日期</returns>
public static DateTime MonthOfFirstDay(int year, int month) {
if (year <= || year >= ) return DateTime.MaxValue;
if (month < || month > ) return DateTime.MaxValue;
DateTime result = DateTime.MinValue;
DateTime.TryParse(string.Format("{0}-{1}-01", year, month), out result);
return result;
}
/// <summary>
/// 获得当前年当前月最后一天的日期
/// </summary>
/// <returns>最后一天日期</returns>
public static DateTime MonthOfLastDay() {
DateTime _now = DateTime.Now;
return MonthOfLastDay(_now.Year, _now.Month);
}
/// <summary>
/// 获得某年某月最后一天的日期
/// </summary>
/// <param name="year">需要计算的年份</param>
/// <param name="month">需要计算的月份</param>
/// <returns>最后一天日期</returns>
public static DateTime MonthOfLastDay(int year, int month) {
if (year <= || year >= ) return DateTime.MaxValue;
if (month < || month > ) return DateTime.MaxValue;
DateTime result = DateTime.MaxValue;
string tmpString = string.Format("{0}-{1}-{2}", year, month, DateTime.DaysInMonth(year, month));
DateTime.TryParse(tmpString, out result);
return result;
} #endregion #region 周 /// <summary>
/// 周(星期)信息实体类
/// </summary>
[Serializable]
public class WeekInfo {
/// <summary>
/// 周(星期)信息实体类
/// </summary>
public WeekInfo() {
Number = ;
BeginDate = DateTime.MinValue;
EndDate = DateTime.MaxValue;
}
/// <summary>
/// 周数
/// </summary>
public int Number { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public DateTime BeginDate { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public DateTime EndDate { get; set; }
/// <summary>
/// 输出第几周和日期间隔
/// <para>默认格式:</para>
/// <para>第几周,从2012年12月21日至2112年12月21日。</para>
/// </summary>
/// <returns>第几周和日期间隔</returns>
public override string ToString() {
return string.Format("第{0}周,从{1}至{2}。", Number, BeginDate.ToString("yyyy年MM月dd日"), EndDate.ToString("yyyy年MM月dd日"));
}
/// <summary>
/// 输出第几周
/// </summary>
/// <param name="isFill">少于2位时是否补零</param>
/// <returns>第几周</returns>
public string GetWeekString(bool isFill) {
string _format = "第{0}周";
if (isFill && Number < ) _format = "第0{0}周";
return string.Format(_format, Number);
}
/// <summary>
/// 输出日期间隔
/// </summary>
/// <param name="inputString">输出格式化字符串</param>
/// <param name="dateString">日期格式化字符串</param>
/// <returns>日期间隔</returns>
public string GetDateString(string inputString, string dateString) {
if (string.IsNullOrWhiteSpace(inputString) || string.IsNullOrWhiteSpace(dateString)) return null;
try {
return string.Format(inputString, BeginDate.ToString(dateString), EndDate.ToString(dateString));
}
catch (Exception ex) {
return ex.Message;
}
}
}
/// <summary>
/// 获得年度第一个周一的日期
/// </summary>
/// <param name="year">需要计算的年份</param>
/// <param name="jumpYear">年度第一周是否跳过跨年的周数</param>
/// <param name="offset">年度第一个周一偏移量</param>
/// <returns>年度第一个周一的日期</returns>
public static DateTime WeekOfFirstDay(int year, bool jumpYear, out int offset) {
DateTime firstDate = YearOfFirstDay(year); //该年的第一天
int firstWeek = (int)firstDate.DayOfWeek; //该年的第一天是周几
offset = ; //周一偏移量
switch (firstWeek) {
case : //星期一
offset = jumpYear ? : ;
break;
case : //星期二
offset = jumpYear ? : -;
break;
case : //星期三
offset = jumpYear ? : -;
break;
case : //星期四
offset = jumpYear ? : -;
break;
case : //星期五
offset = jumpYear ? : -;
break;
case : //星期六
offset = jumpYear ? : -;
break;
case : //星期日
offset = jumpYear ? : -;
break;
}
firstDate = firstDate.AddDays(offset);
return firstDate;
}
/// <summary>
/// 获得年度周(星期)信息实体集合列表
/// </summary>
/// <param name="year">需要计算的年份</param>
/// <param name="jumpYear">年度第一周是否跳过跨年的周数</param>
/// <returns>周(星期)信息实体集合列表对象</returns>
public static IList<WeekInfo> WeekOfList(int year, bool jumpYear) {
IList<WeekInfo> weekList = new List<WeekInfo>();
if (year <= || year >= ) return weekList;
int offset = ;
DateTime firstDate = WeekOfFirstDay(year, jumpYear, out offset); //年度周一的日期
int index = ;
WeekInfo weekInfo;
while (true) {
if (index > ) break;
weekInfo = new WeekInfo();
weekInfo.Number = index;
weekInfo.BeginDate = firstDate; //周一
weekInfo.EndDate = firstDate.AddDays(); //周日
weekList.Add(weekInfo);
firstDate = firstDate.AddDays(); //下周
if (jumpYear) {
if (firstDate.Year != year) break;
}
else {
if (firstDate.AddDays().Year != year) break;
}
index++;
}
return weekList;
}
/// <summary>
/// 获得某年第某周的开始日期和结束日期
/// </summary>
/// <param name="year">需要计算的年份</param>
/// <param name="weekNumber">需要计算的周数</param>
/// <param name="jumpYear">年度第一周是否跳过跨年的周数</param>
/// <param name="weekBeginDate">开始日期</param>
/// <param name="weekEndDate">结束日期</param>
public static void WeekOfDate(int year, int weekNumber, bool jumpYear, out DateTime weekBeginDate, out DateTime weekEndDate) {
weekBeginDate = DateTime.MinValue;
weekEndDate = DateTime.MaxValue;
if (year <= || year >= || weekNumber < || weekNumber > ) return;
int offset = ;
DateTime firstDate = WeekOfFirstDay(year, jumpYear, out offset); //年度周一的日期
firstDate = firstDate.AddDays((weekNumber - ) * );
weekBeginDate = firstDate;
weekEndDate = firstDate.AddDays();
}
/// <summary>
/// 获得某个日期属于某年的第几周
/// </summary>
/// <param name="currentDate">需要计算的日期</param>
/// <param name="jumpYear">年度第一周是否跳过跨年的周数</param>
/// <returns>某年的第几周</returns>
public static int WeekOfCurrent(DateTime currentDate, bool jumpYear) {
if (DateTime.MinValue == currentDate || DateTime.MaxValue == currentDate) return ;
int result = , offset = ;
DateTime firstDate = WeekOfFirstDay(currentDate.Year, jumpYear, out offset); //年度周一的日期
int firstWeek = (int)firstDate.DayOfWeek; //该年的第一天是周几
int currentDay = currentDate.DayOfYear;
if (offset > ) {
currentDay += offset;
}
else {
currentDay -= offset;
}
int remainderDay = currentDay - ( - firstWeek);
if (remainderDay < ) {
result = ;
}
else {
result = remainderDay / ;
if (remainderDay % != ) result++;
result++;
}
return result;
}
/// <summary>
/// 统计一段时间内有多少个星期几
/// </summary>
/// <param name="beginDate">开始日期</param>
/// <param name="endDate">结束日期</param>
/// <param name="weekNumber">星期几</param>
/// <returns>多少个星期几</returns>
public static int WeekOfTotalWeeks(DateTime beginDate, DateTime endDate, DayOfWeek weekNumber) {
TimeSpan _dayTotal = new TimeSpan(endDate.Ticks - beginDate.Ticks);
int result = (int)_dayTotal.TotalDays / ;
double iLen = _dayTotal.TotalDays % ;
for (int i = ; i <= iLen; i++) {
if (beginDate.AddDays(i).DayOfWeek == weekNumber) {
result++;
break;
}
}
return result;
} #endregion #region 季度 /// <summary>
/// 计算当前月属于第几季度
/// </summary>
/// <returns>当前年第几季度</returns>
public static int QuarterOfCurrent() {
return QuarterOfCurrent(DateTime.Now.Month);
}
/// <summary>
/// 计算某个月属于第几季度
/// </summary>
/// <param name="month">需要计算的月份</param>
/// <returns>某年第几季度</returns>
public static int QuarterOfCurrent(int month) {
if (month < || month > ) return -;
return (month - ) / + ;
}
/// <summary>
/// 获得当前年当前季度的开始日期和结束日期
/// </summary>
/// <param name="quarterBeginDate">开始日期</param>
/// <param name="quarterEndDate">结束日期</param>
public static void QuarterOfDate(out DateTime quarterBeginDate, out DateTime quarterEndDate) {
int quarter = QuarterOfCurrent(DateTime.Now.Month);
QuarterOfDate(DateTime.Now.Year, quarter, out quarterBeginDate, out quarterEndDate);
}
/// <summary>
/// 获得指定日期所在季度的开始日期和结束日期
/// </summary>
/// <param name="fromDate">需要计算的日期</param>
/// <param name="quarterBeginDate">开始日期</param>
/// <param name="quarterEndDate">结束日期</param>
public static void QuarterOfDate(DateTime fromDate, out DateTime quarterBeginDate, out DateTime quarterEndDate) {
int quarter = QuarterOfCurrent(fromDate.Month);
QuarterOfDate(fromDate.Year, quarter, out quarterBeginDate, out quarterEndDate);
}
/// <summary>
/// 获得某年第某季度的开始日期和结束日期
/// </summary>
/// <param name="year">需要计算的年份</param>
/// <param name="quarter">需要计算的季度</param>
/// <param name="quarterBeginDate">开始日期</param>
/// <param name="quarterEndDate">结束日期</param>
public static void QuarterOfDate(int year, int quarter, out DateTime quarterBeginDate, out DateTime quarterEndDate) {
quarterBeginDate = DateTime.MinValue;
quarterEndDate = DateTime.MaxValue;
if (year <= || year >= || quarter < || quarter > ) return;
int month = (quarter - ) * + ;
quarterBeginDate = new DateTime(year, month, );
quarterEndDate = quarterBeginDate.AddMonths().AddMilliseconds(-);
} #endregion }
}

DateHelper.cs日期时间操作辅助类C#的更多相关文章

  1. paip.日期时间操作以及时间戳uapi php java python 总结

    paip.日期时间操作以及时间戳uapi php java python 总结 ///uapi Date 函数 | Day 函数 | Hour 函数 | Minute 函数 | Month 函数 | ...

  2. Firebird日期时间操作

    最近在使用Firebird数据做 一项目,使用FireBird边用边学.(以下转贴) 查询2007年度以后的,12月份以上的数据记录,datetime为timestamp字段 select * fro ...

  3. Python基础 | 日期时间操作

    目录 获取时间 时间映射 格式转换 字符串转日期 日期转字符串 unixtime 时间计算 时间偏移 时间差 "日期时间数据"作为三大基础数据类型之一,在数据分析中会经常遇到. 本 ...

  4. Java日期时间操作基础——包含JDK1.8时间操作新特性

    JDK1.7日期时间操作 示例小结 public class DateTest { public static final String FORMAT_DATE = "yyyy-MM-dd& ...

  5. MySQL tips (日期时间操作/concat 等)

    1.  Query结尾要加一个分号: 2.  数据库和表 SHOW DATABASES;    USE YOUR_DB; SHOW TABLES; SHOW COLUMNS FROM study或者D ...

  6. JS 中的日期时间操作计算实例

    实例 一:已知日期格式为 "YYYY/MM/DD",计算相对于今天的天数差. function fromNow(date){ var mTimes = new Date(date) ...

  7. Java日期时间操作的一些方法

    1. 获得Calendar实例: Calendar c = Calendar.getInstance(); 2. 定义日期/时间的格式: SimpleDateFormat sdf =new Simpl ...

  8. php 日期时间操作-可算出几天后的时间

    本文为大家介绍一下根据PHP时间戳获取当前时期的具体方式.strtotime能将任何英文文本的日期时间描述解析为Unix时间戳,我们结合mktime()或date()格式化日期时间获取指定的时间戳,实 ...

  9. mysql日期时间操作

    select curdate(); --获取当前日期 select last_day(curdate()); --获取当月最后一天. select DATE_ADD(curdate(),interva ...

随机推荐

  1. 前端制作动画的几种方式(css3,js)

    制作动态的网页是是前端工程师必备的技能,很好的实现动画能够极大的提高用户体验,增强交互效果,那么动画有多少实现方式,一直对此有选择恐惧症的我就总结一下,以便在开发的时候选择最好的实现方式. 1.css ...

  2. AJAX操作数据

    本文使用AJAX访问数据库文件,并显示在网页中.另外还有AJAX对数据库的删除操作,网页不加载,只刷新数据. 随意使用数据库中的一张表: 使用AJAX显示表中内容,首先打入body代码: <h1 ...

  3. 【手记】注意BinaryWriter写string的小坑——会在string前加上长度前缀length-prefixed

    之前以为BinaryWriter写string会严格按构造时指定的编码(不指定则是无BOM的UTF8)写入string的二进制,如下面的代码: //将字符串"a"写入流,再拿到流的 ...

  4. DockerCon 2016 – 微软带来了什么?

    根据Forrester的调查,接近半数的企业CIO在考虑IT架构的时候更乐于接受开源方案,这主要是基于低成本,避免供应商锁定和敏捷的需求:同时另外一家North Bridge的调研机构的调查显示,20 ...

  5. SQL-union

    集合运算符是对两个集合操作的,两个集合必须具有相同的列数,列具有相同的数据类型(至少能隐式转换的),最终输出的集合的列名由第一个集合的列名来确定.(可以用来连接多个结果)联合(union)与连接(jo ...

  6. Netty构建分布式消息队列(AvatarMQ)设计指南之架构篇

    目前业界流行的分布式消息队列系统(或者可以叫做消息中间件)种类繁多,比如,基于Erlang的RabbitMQ.基于Java的ActiveMQ/Apache Kafka.基于C/C++的ZeroMQ等等 ...

  7. MapReduce剖析笔记之七:Child子进程处理Map和Reduce任务的主要流程

    在上一节我们分析了TaskTracker如何对JobTracker分配过来的任务进行初始化,并创建各类JVM启动所需的信息,最终创建JVM的整个过程,本节我们继续来看,JVM启动后,执行的是Child ...

  8. HTML5 <details> 标签

    HTML5 中新增的<details>标签允许用户创建一个可展开折叠的元件,让一段文字或标题包含一些隐藏的信息. 用法 一般情况下,details用来对显示在页面的内容做进一步骤解释.其展 ...

  9. CSharpGL(39)GLSL光照示例:鼠标拖动太阳(光源)观察平行光的漫反射和镜面反射效果

    CSharpGL(39)GLSL光照示例:鼠标拖动太阳(光源)观察平行光的漫反射和镜面反射效果 开始 一图抵千言.首先来看鼠标拖动太阳(光源)的情形. 然后是鼠标拖拽旋转模型的情形. 然后我们移动摄像 ...

  10. [转载]从MyEclipse到IntelliJ IDEA-让你摆脱鼠标,全键盘操作

    从MyEclipse转战到IntelliJ IDEA的经历 注转载址:http://blog.csdn.net/luoweifu/article/details/13985835 我一个朋友写了一篇“ ...