program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils, Controls, DateUtils;
//分析输入,错误时返回False
function ParseInput(Text: string; var Year, Month, Day: Integer): Boolean;
var
i, p: Integer;
s: array[13] of string;
begin
result := False;
//获得三个日期数的字符串
for i := 1 to 2 do
begin
p := pos(' ', Text);
if p > 0 then
begin
s[i] := Copy(Text, 1, p - 1);
Delete(Text, 1, p);
end else
begin
writeln('输入的格式有误,三个数字请用空格隔开!');
Exit;
end;
end;
s[3] := Text;
//转换为整型并检查范围
Year := StrToIntDef(s[1], -1);
if (Year < 1) or (Year > 3000) then
begin
writeln('年份超出范围,应在1-3000之间!');
Exit;
end;
Month := StrToIntDef(s[2], -1);
if (Month < 1) or (Month > 12) then
begin
writeln('月份超出范围,应在1-12之间!');
Exit;
end;
Day := StrToIntDef(s[3], -1);
if (Day < 1) or (Day > 31) then
begin
writeln('日期超出范围,应在1-31之间!');
Exit;
end;
try
//使用系统函数检查年月日的合法性,产生异常则不合法
EncodeDate(Year, Month, Day);
except
writeln('输入的年月日不合法,注意月份对应的日期范围!');
Exit;
end;
Result := True;
end;
var
Y0, M0, D0: Integer;
Y, M, D: Integer;
strInput: string;
DT0, DT: TDate;
begin
//输入小艳的出生年月日
repeat
writeln('请输入小艳的出生年月日:');
readln(strInput);
until ParseInput(strInput, Y0, M0, D0);
//输入今天的日期
repeat
repeat
writeln('请输入今天的年月日:');
readln(strInput);
until ParseInput(strInput, Y, M, D);
//检查是否在小艳生日之后
DT0 := EncodeDate(Y0, M0, D0);
DT := EncodeDate(Y, M, D);
if CompareDate(DT0, DT) = 1 then
begin
writeln('今天的年月日应该在小艳的生日之后!');
continue;
end;
//检查今天的日期是否在第20个生日之后
DT0 := IncYear(DT0, 19);
if CompareDate(DT0, DT) = -1 then
writeln('今天的年月日应该在小艳的第20个生日之前!')
else
Break;
until False;
//输出还有多少天
writeln(DaysBetween(DT0, DT));
readln;
end
下面小编就为大家带来一篇js编写当天简单日历效果实现代码。小编觉得挺不错的,现在分享给大家,也给大家做个参考
之前一直很想用javascript写一个日历,但是因为完全没有好的思路, 所以迟迟没有尝试。最近在网上刚好看到用javascript编写的简单日历的例子,代码量虽然不大, 但是我觉得很好地阐述了js日历的实现原理。自己也尝试着做了一下,收获蛮大,掌握了基本的实现原理后,再想增加更多的功能,完全就可以自由发挥了,先在这里分享一下吧,有兴趣的可以试试!
一表格行数问题
既然要显示日期表格的话,首先得知道这个表格有多少行多少列,列数是已经确定的,从星期天(日历上第1列是星期天)到星期六一共7列。要解决行数问题之前,还得先知道这个月的第1天是星期几,因为每个月的1号并不都是从日历上的星期天开始排的,可能1号是星期五,星期六也说不定,所以1号的左边部分,就得用空表格代替了。那么用多少个空表格代替呢,这里就得用到getDay()方法了,该方法返回数组[0-6]中的一个数字,0代表星期天,1代表星期一,2代表星期二,以此类推。所以如果一个月的1号是星期五的话,那么刚好左边需要5个空表格代替。然后,假如一个月有31天,最后求出的表格行数就是:
var tr_nums = Mathceil((5 + 31)/7);
当然,并不是每个月都是31天,所以我们得创建一个包含12个月份的数组,每个元素代表每个月份所包含的天数。但是2月份比较特殊,闰年的2月份有29天,平年的2月份只有28天。所以,在创建数组之前,得自己创建一个判断闰年的函数:
//如果当前年份能被4整除但是不能被100整除或者能被400整除,即可确定为闰年,返回1,否则返回0
function isLeap(year) {
return year % 4 == 0 (year % 100 != 0 1 : (year % 400 == 0 1 : 0)) : 0;
时间戳就是如1377216000000 这种格式我们在mysql数据库中会经常用到把时间转换成时间戳或把时间戳转换成日期格式了,下面我来介绍安卓中时间戳 *** 作转换方法。
一、原理
时间戳的原理是把时间格式转为十进制格式,这样就方便时间的计算。好~ 直接进入主题。(下面封装了一个类,有需要的同学可以参考或是直接Copy 就可以用了。)
如: 2013年08月23日 转化后是 1377216000000
二、步骤
1、创建 DateUtilsl类。
代码如下 复制代码
importjavatextParseException;
importjavatextSimpleDateFormat;
importjavautilDate;
/
@author Msquirrel
/
public class DateUtils {
privateSimpleDateFormat sf = null;
/获取系统时间 格式为:"yyyy/MM/dd "/
public static String getCurrentDate() {
Date d = newDate();
sf = newSimpleDateFormat("yyyy年MM月dd日");
returnsfformat(d);
}
/时间戳转换成字符窜/
public static String getDateToString(long time) {
Date d = newDate(time);
sf = newSimpleDateFormat("yyyy年MM月dd日");
returnsfformat(d);
}
/将字符串转为时间戳/
public static long getStringToDate(String time) {
sdf = newSimpleDateFormat("yyyy年MM月dd日");
Date date = newDate();
try{
date = sdfparse(time);
} catch(ParseException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
returndategetTime();
}
2、在对应使用的地方调用就可以了。
代码如下 复制代码
DateUtilsgetCurrentDate(); //获取系统当前时间
DateUtilsgetDateToString(时间戳); //时间戳转为时间格式
DateUtilsgetStringToDate("时间格式");//时间格式转为时间戳
DELPHI的时间是实数,可以直接加减,根本没有必要用函数处理。
DATE1:=DATA1+1;//加1天
DATE1:=DATA1+1/2;//加半天(12小时)
DATE1:=DATA1+1/24;//加1小时
DATE1:=DATA1+1/24/3600;//加1秒
减法也是可以直接相减。
应该对你有帮助的!uses加入DateUtils单元●functionDaysBetween(constANow,AThen:TDateTime):Integer;描述:根据两个TDateTime类型的日期时间变量ANow和AThen,DaysBetween函数能得到两者之间的天数的差距。DaysBetween仅仅根据天数的不同来计算。因此,对于1999年12月31日下午11点59分到2000年1月1日11点58分,该函数得到的结果是0,因为两者之间的时间差别还差1分钟才到1天。
加单元dateutils,
函数
incday(date,
5),
即返回的是今天的日期加上五天,如果为-5则减五天,另有月、年、时、秒、分相加函数,incminute,incyear,incmonth,incsecond
日期时间类型:TDateTime;本质是double,双精度类型;
整数部分代表日期,小数部分代表时间
数值为0时,代表 12/30/1899 12:00 am
因为是double类型,日期调整可以直接以数值加减 *** 作,
具体控制有很多函数,都包含在 Unit:DateUtils中
函数列表:
CompareDate function
CompareDateTime function
CompareTime function
DateOf function
DateTimeToJulianDate function
DateTimeToModifiedJulianDate function
DateTimeToUnix function
Day of week constants
DayOf function
DayOfTheMonth function
DayOfTheWeek function
DayOfTheYear function
DaysBetween function
DaysInAMonth function
DaysInAYear function
DaysInMonth function
DaysInYear function
DaySpan function
TDateTime values
DecodeDateDay procedure
DecodeDateMonthWeek procedure
DecodeDateTime procedure
DecodeDateWeek procedure
DecodeDayOfWeekInMonth procedure
EncodeDateDay function
EncodeDateMonthWeek function。。。
以上就是关于二、天数 pascal全部的内容,包括:二、天数 pascal、js编写一个显示程序运行当天到下一个元旦之间的天数。、怎么把Unix时间戳变成一般时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)