最近在做一个聊天功能,并且要在用户列表上显示最后聊天时间,类似QQ的日期显示。 问群里和百度后,群里没人鸟我,网上也没搜到,最后苦于无奈只能自己封装了。 不过话说回来了,大哥与小弟的区别就是大哥写好封装类让小弟去用。和编译器差不多原理,微软为我们封装了一个又一个类库,然后我们点点就出来了。但这样不能锻炼我们,所以提倡大家多做封装。好了,废话少说,直接上代码,如有不正确的地方欢迎指出!~嘿嘿

ChateTimeHelper.cs

 /// <summary>
/// 聊天日期展示帮助类
/// </summary>
public class ChateTimeHelper
{ /// <summary>
///不是本年------则返回具体年-月-日
///是本年,不是今天和昨天------就显示 月-日
///昨天----则显示昨天
///今天----则显示 时-分
/// </summary>
/// <param name="ct">聊天时间</param>
/// <returns></returns>
public static string GetChateTimeInfo(DateTime ct)
{
DateTime dtNow = DateTime.Now;
int year=dtNow.Year;
int month=dtNow.Month;
int day=dtNow.Day;
TimeSpan ts = dtNow - ct;
if (ct.AddDays().Year == year && ct.AddDays().Month == month && ct.AddDays().Day == day)//加一天如果和现在年月日相同,证明是昨天
{
return "昨天";
}
else if (ct.Year==year&&ct.Month==month&&ct.Day==day)//年月日相等则证明是今天发的消息
{
string hour = ct.Hour < ? "" + ct.Hour.ToString() : ct.Hour.ToString();
string minute = ct.Minute < ? "" + ct.Minute.ToString() : ct.Minute.ToString();
return hour + ":" + minute;
}
else if (ct.Year == year)
{
return ct.Month + "-" + ct.Day;
}
else //其余的显示月日
{
return ct.Year + "-" + ct.Month + "-" + ct.Day;
}
}
}

调用上面的类就会获得类似下面的这种结果:

最新文章

  1. vmware workstation unrecoverable error: (vmui)报错解决方法
  2. phpstorm配置代码自动同步到服务器
  3. Android SDK Manager无法下载的问题
  4. Coding 初级教程(二)——上传已有项目
  5. Oracle数据库之三
  6. jquery checkbox勾选取消勾选的诡异问题
  7. 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇04:碰撞检测》
  8. Google Map API 学习五
  9. Linux系统、版本、CPU、内存查看、硬盘空间
  10. android用canvas绘制两种波纹效果
  11. 笨鸟先飞之ASP.NET MVC系列之过滤器(01过滤器简介)
  12. Java NIO系列教程(六) 多路复用器Selector
  13. HBase之CF持久化系列(续2)
  14. 版本控制-GitHub
  15. @responsebody 返回json
  16. Logo的制作
  17. 【洛谷P2696】慈善的约瑟夫
  18. 【代码审计】CLTPHP_v5.5.3后台任意文件下载漏洞分析
  19. 027-chown命令
  20. AutoLayout 的一些坑

热门文章

  1. vue-阻止事件冒泡-开启右键-键盘类事件
  2. testdirector
  3. 06《UML大战需求分析》之六
  4. 是时候学习 RxSwift 了
  5. sql_1
  6. Kafka学习笔记(4)----Kafka的Leader Election
  7. 绘画软件优动漫PAINT系统要求
  8. 如何选择优动漫PAINT版本?是个人版还是EX版
  9. 商品的CRUD操作
  10. WEBGL学习【十】运动模型