ASP.NET 统计连续签到天数
来源:互联网 发布:电脑抽奖软件下载 编辑:程序博客网 时间:2024/06/06 20:01
CREATE TABLE tbl_Signin_SigninDays( SigninLogID int identity(1,1) primary key,SigninUser varchar(100),SigninTime datetime default(getdate()),)GOtruncate TABLE tbl_Signin_SigninDaysGOinsert into tbl_Signin_SigninDaysvalues('蜘蛛侠','2017-4-25 18:06:28'),('蜘蛛侠','2017-4-24 18:06:28'),('蜘蛛侠','2017-4-23 18:06:28'),('蜘蛛侠','2017-4-22 18:06:28'),('蜘蛛侠','2017-4-20 18:06:28'),('蜘蛛侠','2017-4-19 18:06:28'),('闪电侠','2017-4-25 18:06:28'),('闪电侠','2017-4-23 18:06:28'),('闪电侠','2017-4-22 18:06:28'),('闪电侠','2017-4-20 18:06:28'),('闪电侠','2017-4-19 18:06:28'),('绿箭侠','2017-4-25 18:06:28'),('绿箭侠','2017-4-24 18:06:28'),('绿箭侠','2017-4-22 18:06:28'),('绿箭侠','2017-4-21 18:06:28'),('绿箭侠','2017-4-19 18:06:28')GOselect * from tbl_Signin_SigninDays order by SigninUser,SigninTime DescGO
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SigninDays.aspx.cs" Inherits="SasSystem.SigninDays" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>连续签到天数</title> <script src="/js/ajax.AutocompleteTable/jquery-1.8.3.min.js"></script></head><body> <form id="form1" runat="server"> <asp:DropDownList ID="dllUserList" runat="server"></asp:DropDownList> <asp:Button ID="btnGet" runat="server" Text="Button" OnClick="btnGet_Click" /> <br /> <asp:Literal ID="ltrGetContext" runat="server"></asp:Literal> </form></body></html>
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace SasSystem{ public partial class SigninDays : System.Web.UI.Page { BusinessLogic.SigninDays signBL = new BusinessLogic.SigninDays(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.BindUser(); } } private void BindUser() { List<Model.SigninDaysInfo> _ulist = BusinessLogic.LambdaHelper.DistinctBy(signBL.SelectMany(), n => n.SigninUser).ToList(); this.dllUserList.DataSource = _ulist; this.dllUserList.DataTextField = "SigninUser"; this.dllUserList.DataTextField = "SigninUser"; this.dllUserList.DataBind(); } protected void btnGet_Click(object sender, EventArgs e) { List<Model.SigninDaysInfo> _list = signBL.SelectMany("SigninTime DESC", "SigninUser='" + this.dllUserList.SelectedValue + "'"); int SigninDays = 0;//连续签到天数 string _thisday = DateTime.Now.ToString("yyyy-MM-dd");//今日 foreach (var item in _list) { if (Convert.ToDateTime(item.SigninTime).ToString("yyyy-MM-dd").Equals(_thisday))//时间匹配上 { SigninDays++;//签到天数+1天 } else { break;//跳出循环 } _thisday = Convert.ToDateTime(_thisday).AddDays(-1).ToString("yyyy-MM-dd");//每次循环往前倒推一天 } this.ltrGetContext.Text = "[ " + this.dllUserList.SelectedValue + " ]连续签到天数:[ " + SigninDays + " ]"; } }}
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace BusinessLogic { public static class LambdaHelper { // var query = people.DistinctBy(p => p.Id); // var query = people.DistinctBy(p => new { p.Id, p.Name }); /// <summary> /// 去重复数据 /// </summary> /// <typeparam name="TSource"></typeparam> /// <typeparam name="TKey"></typeparam> /// <param name="source"></param> /// <param name="keySelector">用于去重的表达式,单个字段如:var query = people.DistinctBy(p => p.Id);多个字段如:var query = people.DistinctBy(p => new { p.Id, p.Name });</param> /// <returns></returns> public static IEnumerable<TSource> DistinctBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector) { HashSet<TKey> seenKeys = new HashSet<TKey>(); foreach (TSource element in source) { if (seenKeys.Add(keySelector(element))) { yield return element; } } } } }
0 0
- ASP.NET 统计连续签到天数
- 当月签到连续天数
- sql 得到连续签到天数及总签到天数
- mysql 统计连续登录天数
- 获取list中连续的数最长个数(日历连续签到天数)
- 统计天数
- Asp.Net判断某年某月总天数
- 连续签到的功能
- asp.net图象统计
- asp.net网站统计
- 签到,打卡领取积分,记录连续签到,获取签到排名。
- SQL连续天数问题
- 在mysql中根据日期来统计出用户行为属性的连续天数
- MySQL中实现连续日期内数据统计,缺省天数0补全
- ThinkPHP连续签到小案例
- 微信商城签到天数sql语句
- asp.net图表统计类
- 投票统计模块(asp.net)
- unpack(b) received extra data saltstack故障
- Android 中的IPC简单使用
- Java学习笔记(九)--Calendar类 正则表达式
- 利用java的IO流简单创建文件和赋值文件(内含简单代码)
- 提取字符串中的大写字母
- ASP.NET 统计连续签到天数
- MongoDB数据库备份
- 苹果微信web无法提交form表单问题解决
- PAT-1009
- mapreduce 二次排序后reduce输出中key的变化
- H264参数结构一:元素的分层结构
- Android中Activity之间参数传递
- linux编译libevent
- H264参数结构一:元素的分层结构