日期采用10位编码,YYYY-MM-DD格式。例如,1982-03-15表示1982年3月15日。
时间采用8位编码,HH:MM:SS格式。例如,15:32:08表示15点32分8秒。
这是我项目中正在用的时间戳,没经过整理,你看下package com.tianwei.utils
import android.net.ParseException
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Date
/**
* Created by GT on 2017/8/22.
* 注:Uinix和Windows时间不同
*/
public class Time {
public void Time() {
}
//格式时间
public static String systemTime(String time) {
SimpleDateFormat sDateFormat = null
if (time != null &&time.length() >0) {
sDateFormat = new SimpleDateFormat(time)
} else {
sDateFormat = new SimpleDateFormat("yyyyMMddHHmmss")
}
String date = sDateFormat.format(new java.util.Date())
return date
}
//无格式时间
public static String systemTime() {
SimpleDateFormat sDateFormat = null
sDateFormat = new SimpleDateFormat("yyyyMMddHHmmss")
String date = sDateFormat.format(new java.util.Date())
return date
}
/*
* 将时间戳转换为时间
*/
public static String stampToDate(String s, String time) {
String res
SimpleDateFormat simpleDateFormat
if (time == null &&time.length() >0) {
simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
} else {
simpleDateFormat = new SimpleDateFormat(time)
}
long lt = new Long(s)
Date date = new Date(lt)
res = simpleDateFormat.format(date)
return res
}
/*
* 将时间转换为时间戳
*/
public static String dateToStamp(String s) throws ParseException {
String res
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
Date date = null
try {
date = simpleDateFormat.parse(s)
} catch (java.text.ParseException e) {
e.printStackTrace()
}
long ts = date.getTime()
res = String.valueOf(ts)
return res
}
/**
* 系统时间戳
*/
public static long dataStampDate() {
long s = System.currentTimeMillis()
// long s = new Date().getTime()
// long s = Calendar.getInstance().getTimeInMillis()
return s
}
/**
* Unix
* 时间戳转换成日期格式
*
* @param timestampString
* @param formats
* @return
*/
public static String timeStampUnixDate(String timestampString, String formats) {
Long timestamp = Long.parseLong(timestampString) * 1000
String date = new java.text.SimpleDateFormat(formats).format(new java.util.Date(timestamp))
return date
}
/**
* Unix
* 日期格式字符串转换成时间戳
*
* @param dateStr 字符串日期
* @param format 如:yyyy-MM-dd HH:mm:ss
* @return
*/
public static String dateUinxTimeStamp(String dateStr, String format) {
try {
SimpleDateFormat sdf = null
if (format != null &&format.length() >0) {
sdf = new SimpleDateFormat(format)
} else {
sdf = new SimpleDateFormat("yyyyMMddhhmmss")
}
return String.valueOf(sdf.parse(dateStr).getTime() / 1000)
} catch (Exception e) {
e.printStackTrace()
}
return ""
}
/**
* 两个时间间的时间戳计算函数
*
* @param beginDate
* @param endDate
* @param f 时间差的形式0:秒,1:分种,2:小时,3:天
* @return long 秒
*/
public static long getDifference(Date beginDate, Date endDate, int f) {
long result = 0
if (beginDate == null || endDate == null) {
return 0
}
try {
// 日期相减获取日期差X(单位:毫秒)
long millisecond = endDate.getTime() - beginDate.getTime()
/**
* Math.abs((int)(millisecond/1000))绝对值 1秒 = 1000毫秒
* millisecond/1000 -->秒 millisecond/1000*60 - >分钟
* millisecond/(1000*60*60) -- >小时 millisecond/(1000*60*60*24) -->
* 天
* */
switch (f) {
case 0: // second
return (millisecond / 1000)
case 1: // minute
return (millisecond / (1000 * 60))
case 2: // hour
return (millisecond / (1000 * 60 * 60))
case 3: // day
return (millisecond / (1000 * 60 * 60 * 24))
}
} catch (Exception e) {
e.printStackTrace()
}
return result
}
/**
* 计算时间差
*
* @param starTime 开始时间
* @param endTime 结束时间
* @return 返回时间差
* @param返回类型==1----天,时,分。 ==2----时
*/
public String getTimeDifference(String starTime, String endTime) {
String timeString = ""
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm")
try {
Date parse = dateFormat.parse(starTime)
Date parse1 = dateFormat.parse(endTime)
long diff = parse1.getTime() - parse.getTime()
long day = diff / (24 * 60 * 60 * 1000)
long hour = (diff / (60 * 60 * 1000) - day * 24)
long min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60)
long s = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60)
long ms = (diff - day * 24 * 60 * 60 * 1000 - hour * 60 * 60 * 1000
- min * 60 * 1000 - s * 1000)
// System.out.println(day + "天" + hour + "小时" + min + "分" + s +
// "秒")
long hour1 = diff / (60 * 60 * 1000)
String hourString = hour1 + ""
long min1 = ((diff / (60 * 1000)) - hour1 * 60)
timeString = hour1 + "小时" + min1 + "分"
// System.out.println(day + "天" + hour + "小时" + min + "分" + s +
// "秒")
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace()
} catch (java.text.ParseException e) {
e.printStackTrace()
}
return timeString
}
/**
* Java YEAR、MONTH、DAY_OF_MONTH、HOUR加减法,int num +(日期前) -(日期后)
*
* @param num
* @param type
* @return
*/
public static String timeDateCompute(int num, int type) {
// YEAR、MONTH、DAY_OF_MONTH、HOUR 等
Calendar cal = Calendar.getInstance()//使用默认时区和语言环境获得一个日历。
if (type >6) {
return null
}
switch (type) {
case 0://年
cal.add(Calendar.YEAR, -num)
break
case 1://月
cal.add(Calendar.MONTH, -num)
break
case 2://日
cal.add(Calendar.DAY_OF_MONTH, -num)//取当前日期的前num天.
break
case 3://时
cal.add(Calendar.HOUR_OF_DAY, -num)
break
case 4://分
cal.add(Calendar.MINUTE, -num)
break
case 5://秒
cal.add(Calendar.SECOND, -num)
break
case 6://周
cal.add(Calendar.WEEK_OF_MONTH, -num)
break
}
//通过格式化输出日期
SimpleDateFormat format = new java.text.SimpleDateFormat("yyyyMMddHHmmss")
// SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
if (type == 0) {
System.out.println("Today is: " + format.format(Calendar.getInstance().getTime()))
}
System.out.println("CutNum is: " + format.format(cal.getTime()))
String CutNum = format.format(cal.getTime())
return CutNum
}
/**
* 时间日期加减(-前,+后)
*
* @param statTime
* @param ymdhms
* @param type
* @return
*/
public String timeNum(Date statTime, int ymdhms, int type) {
String tn = null
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddhhmmss")
System.out.println("今天的日期:" + df.format(statTime))
System.out.println("两天前的日期:" + df.format(new Date(statTime.getTime() - 2 * 24 * 60 * 60 * 1000)))
System.out.println("三天后的日期:" + df.format(new Date(statTime.getTime() + 3 * 24 * 60 * 60 * 1000)))
switch (type) {
case 0://年
break
case 1://月
break
case 2://日
tn = df.format(new Date(statTime.getTime() - ymdhms * 24 * 60 * 60 * 1000))
break
case 3://时
tn = df.format(new Date(statTime.getTime() - ymdhms * 60 * 60 * 1000))
break
case 4://分
tn = df.format(new Date(statTime.getTime() - ymdhms * 60 * 1000))
break
case 5://秒
tn = df.format(new Date(statTime.getTime() - ymdhms * 1000))
break
}
return tn
}
/**
* 时间日期加减(-前,+后)
*
* @param statTime
* @param year
* @param month
* @param day
* @param hour
* @param min
* @param sec
* @return
*/
public String timeNumStr(Date statTime, int year, int month, int day, int hour, int min, int sec) {
String tn = null
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddhhmmss")
System.out.println("今天的日期:" + df.format(statTime))
System.out.println("两天前的日期:" + df.format(new Date(statTime.getTime() - 2 * 24 * 60 * 60 * 1000)))
System.out.println("三天后的日期:" + df.format(new Date(statTime.getTime() + 3 * 24 * 60 * 60 * 1000)))
tn = df.format(new Date(statTime.getTime() - day * hour * min * sec * 1000))
return tn
}
}
你好,根据你的描述,我做了2个页面,一个是时间的设置页面times.asp,另一个是刷卡页面duibi.asp,具体代码如下:页面times.asp的代码:
<%
set conn=Server.CreateObject("ADODB.Connection") '创建一个数据库连接对象conn,方便以后调用
connstr="Provider=SQLOLEDBData Source=(local)Initial Catalog=testUser ID=saPassword=XXXXXX"'创建 一个数据库的recordset对象
conn.Open connstr'打开数据库
if trim(request("Action"))="xg" then
sql_tt="update kaoqin_times set shangban='"&trim(request("shangban"))&"',xiaban='"&trim(request("xiaban"))&"'" 'SQL语句
conn.Execute sql_tt
response.write "<script>alert('时间已重新设定!')window.location.href='times.asp'</script>"
response.End()
end if
%>
<%
set rs_t=server.createobject("adodb.recordset")
sql_t="select shangban,xiaban from kaoqin_times"
rs_t.Open sql_t,conn,1,1
sb=rs_t("shangban")
xb=rs_t("xiaban")
rs_t.close
set rs_t=nothing
%>
<%
conn.close
set conn=nothing
%>
<style type="text/css">
<!--
body,td,th {
font-size: 12px
}
-->
</style>
<table width="500" border="1" align="center" cellpadding="0" cellspacing="0">
<form id="form1" name="form1" method="post" action="?Action=xg">
<tr>
<td colspan="2" height="30" bgcolor="#EFEFEF" align="center"><b>员工上下班时间设置</b></td>
</tr>
<tr>
<td width="30%" height="30" bgcolor="#EFEFEF" align="center">员工上班时间:</td>
<td width="70%" style="padding-left:10px"><input type="text" name="shangban" size="20" value="<%=sb%>" /> <font color="#FF0000">格式为:09:00:00</font></td>
</tr>
<tr>
<td height="30" bgcolor="#EFEFEF" align="center">员工下班时间:</td>
<td style="padding-left:10px"><input type="text" name="xiaban" size="20" value="<%=xb%>" /> <font color="#FF0000">格式为:17:30:00</font></td>
</tr>
<tr>
<td colspan="2" height="40" bgcolor="#EFEFEF" align="center"><input type="submit" name="submit1" value="设置" /><input type="reset" name="reset1" value="重置" /><input type="button" name="button1" value="刷卡试试" onclick="window.location.href='duibi.asp'" /></td>
</tr>
</form>
</table>
---------------------------------------------------------
刷卡页面duibi.asp的代码:
<%
set conn=Server.CreateObject("ADODB.Connection") '创建一个数据库连接对象conn,方便以后调用
connstr="Provider=SQLOLEDBData Source=(local)Initial Catalog=testUser ID=saPassword=XXXXXX"'创建 一个数据库的recordset对象
conn.Open connstr'打开数据库
'要从数据库读出设定的上下班时间,以便下面的对比判断
set rs_t=server.createobject("adodb.recordset")
sql_t="select shangban,xiaban from kaoqin_times"
rs_t.Open sql_t,conn,1,1
sb=rs_t("shangban")
xb=rs_t("xiaban")
rs_t.close
set rs_t=nothing
conn.close
set conn=nothing
h=formatdatetime(now,3) '这里取当前时间的“时:分:秒”这一部分
if h >formatdatetime(trim(sb),3) and h <"12:00:00" then
sql="update kaoqin_information set late='1',out='0' where usernum='" &usernum&"' and skdate='"&d&"'"
response.write("<script>alert('今天迟到,将扣5元!')history.back(-1)</script>")
elseif h >"12:00:00" and h <formatdatetime(trim(xb),3) then
sql="update kaoqin_information set leave='1' ,out='0' where usernum='" &usernum&"' and skdate='"&d&"'"
response.write("<script>alert('今天早退,将扣5元!')history.back(-1)</script>")
else
sql="update kaoqin_information set out='0' where usernum='" &usernum&"' and skdate='"&d&"'"
response.write("<script>alert('上下班正常,请继续保持!')history.back(-1)</script>")
end if
%>
以上代码经测试已达到你要的效果,且100%能正常使用,希望你能满意!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)