【原创】利用Windows系统日志统计员工每天上下班考勤时间
利用Windows系统日志统计员工每天上下班考勤时间(命令行参数为统计月份):
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Diagnostics;
- namespace ConsoleSysLogView
- {
- class Program
- {
- static void Main(string[] args)
- {
- SystemLog log = new SystemLog();
- if (args.Length == )
- {
- int x = Convert.ToInt32(args[]);
- log.PrintEventLog(x);
- }
- else
- {
- Console.WriteLine("Event count: " + log.Count);
- Console.WriteLine("QueryMessage: SysLogView.exe MonthNum");
- }
- if (Debugger.IsAttached) Console.ReadKey();
- }
- }
- public class SystemLog
- {
- private EventLogEntryCollection _eventCollection;
- private EventLog _systemEvent;
- public SystemLog()
- {
- _systemEvent = new EventLog();
- _systemEvent.Log = "System";
- _eventCollection = _systemEvent.Entries;
- }
- public void PrintEventLog(int month)
- {
- DateTime dateFrom = new DateTime(DateTime.Now.Year, month, );
- DateTime dateTo = dateFrom.AddMonths();
- DateTime dt = dateFrom;
- while (dt < dateTo)
- {
- IList<EventLogEntry> list = Events.Where(a => a.TimeGenerated.Date == dt.Date).OrderBy(a => a.TimeGenerated).ToList();
- if (list.Count > )
- {
- Console.WriteLine();
- Console.WriteLine(GetLogEntryText(list[]));
- if (list.Count > )
- {
- int l = list.Count - ;
- Console.WriteLine(GetLogEntryText(list[l]));
- }
- }
- dt = dt.AddDays();
- }
- }
- private string GetLogEntryText(EventLogEntry entry)
- {
- return string.Format("{0} {1:yyyy-MM-dd HH:mm} 来源:{2} 事件ID:{3}", entry.EntryType, entry.TimeGenerated.ToString("yyyy-MM-dd HH:mm"), entry.Source, entry.InstanceId);
- }
- private IList<EventLogEntry> _events;
- public IList<EventLogEntry> Events
- {
- get
- {
- if (_events == null)
- {
- _events = new List<EventLogEntry>();
- for (int i = ; i < _eventCollection.Count; i++)
- {
- EventLogEntry entry = _eventCollection[i];
- _events.Add(entry);
- if (i % == ) Console.Write(".");
- }
- }
- return _events;
- }
- }
- public int Count
- {
- get { return Events.Count; }
- }
- }
- }
【原创】利用Windows系统日志统计员工每天上下班考勤时间的更多相关文章
- 如何安全管理windows系统日志,windows系统日志的报表和告警
如何安全管理windows系统日志,windows系统日志的报表和告警 无论大小,每个拥有IT基础设施的组织都容易发生内部安全攻击.您的损失等同于黑客的收益:访问机密数据.滥用检索到的信息.系统崩溃, ...
- 利用Windows内置工具winsat测试硬盘速度(SSD&机械盘对比)
利用Windows内置工具winsat测试硬盘速度(SSD&机械盘对比) 以下是红色内容是在命令行运行: C:\Users\Administrator>winsat diskWindow ...
- 利用windows系统ftp命令编写的BAT文件上传[转]
利用windows系统ftp命令编写的BAT文件上传[转] 利用windows系统ftp命令编写的BAT文件上传[转] 在开发中往往需要将本地的程序上传到服务器,而且用惯了linux命令的人来说.在w ...
- Microsoft Tech Summit 2018 课程简述:利用 Windows 新特性开发出更好的手绘视频应用
概述 Microsoft Tech Summit 2018 微软技术暨生态大会将于10月24日至27日在上海世博中心举行,这也会是国内举办的最后一届 Tech Summit,2019 年开始会以 Mi ...
- 利用Windows 2003系统中实现两个网段的路由
利用Windows 2003系统中实现两个网段的路由 当一个局域网中存在两个以上网段时,分属于不同网段内的主机彼此互不可见.为了解决这个问 题,就必须在不同的网段之间设置路由器.如果花费上万元资金购买 ...
- [原创]App崩溃率统计工具推荐
[原创]App崩溃率统计工具推荐 1 友盟(推荐) 友盟是一款比较成熟的工具,同时也可以展示留存,日活,事件等. 2 Bugly 腾讯的bugly统计数据也算是比较早的,可惜后续维护比较弱,功能与 ...
- 利用windows任务计划备份sqlserver
sqlserver Express版不含agent service(虽然可以从“服务”里看到,但是无法启动),因此无法使用代理服务执行备份作业,如果代理作业服务正常,建议还是首先采用代理服务. 此备份 ...
- Delphi利用Windows GDI实现文字倾斜
Delphi利用Windows GDI实现文字倾斜 摘要 Delphi利用Windows GDI实现文字倾斜 procedure TForm1.FormPaint(Sender: TObject);v ...
- Mark Russinovich 的博客:Windows Azure 主机更新:原因、时间和方式
Mark Russinovich的技术博客涵盖 Windows故障排除.技术和安全等主题. Windows Azure主机更新:原因.时间和方式 Windows Azure的计算平台(其中包括 ...
随机推荐
- switch_to 理解
最近看linux0.11源码时,看到任务切换函数switch_to,感觉很晦涩,于是在网上查了一些资料,现在终于有些眉目,特记录于此,以方便大家参考,有什么错误或不足之处,还请大家指出~ switch ...
- NSString+URLEncoding.h --使用Obj-C对数据等进行URLEncoding编码
在Objective-c进行网络编程时,经常需要把数据转换成URLEncoding编码,如对+号编码后,变成%2b.这里我们给出一种实现. //NSString+URLEncoding.h #impo ...
- SDUT1466双向队列
http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=1466&cid=1182 题目描述 想想双向链表……双向队列的定义差不多,也就是说一个队列 ...
- Test Markdown Editor
Last night, I just saw a cute blogger's homepage. Then I want to write something. But anyway, I use ...
- LintCode 字符串比较
比较两个字符串A和B,确定A中是否包含B中所有的字符.字符串A和B中的字符都是大写字母: 给出 A = "ABCD" B = "AABC", 返回 false ...
- Java学习笔记之:Java流程控制
一.介绍 Java流程控制包括顺序控制.条件控制和循环控制. 顺序控制,就是从头到尾依次执行每条语句操作.条件控制,基于条件选择执行语句,比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操 ...
- shutdown -s -t
import java.io.*; import java.awt.*; public class HackDemo{ public static void main(String args[])th ...
- NSRange
int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... ...
- Tomcat的SessionID引起的Session Fixation和Session Hijacking问题
上一篇说到<Spring MVC防御CSRF.XSS和SQL注入攻击>,今天说说SessionID带来的漏洞攻击问题.首先,什么是Session Fixation攻击和Session Hi ...
- 【翻译】JavaScript中的作用域和声明提前
原文:http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html ===翻译开始=== 你知道下面的JavaScript脚本执 ...