获取类似QQ似的时间,昨天或具体日期
2024-08-31 10:19:51
最近在做一个聊天功能,并且要在用户列表上显示最后聊天时间,类似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;
}
}
}
调用上面的类就会获得类似下面的这种结果:
最新文章
- vmware workstation unrecoverable error: (vmui)报错解决方法
- phpstorm配置代码自动同步到服务器
- Android SDK Manager无法下载的问题
- Coding 初级教程(二)——上传已有项目
- Oracle数据库之三
- jquery checkbox勾选取消勾选的诡异问题
- 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇04:碰撞检测》
- Google Map API 学习五
- Linux系统、版本、CPU、内存查看、硬盘空间
- android用canvas绘制两种波纹效果
- 笨鸟先飞之ASP.NET MVC系列之过滤器(01过滤器简介)
- Java NIO系列教程(六) 多路复用器Selector
- HBase之CF持久化系列(续2)
- 版本控制-GitHub
- @responsebody 返回json
- Logo的制作
- 【洛谷P2696】慈善的约瑟夫
- 【代码审计】CLTPHP_v5.5.3后台任意文件下载漏洞分析
- 027-chown命令
- AutoLayout 的一些坑