java 根据输入的年月计算出这个月有几周

java 根据输入的年月计算出这个月有几周,第1张

import javautilCalendar;

import javautilDate;

import javatextSimpleDateFormat;

import javatextParsePosition;

import javautilGregorianCalendar;

/

<p>Title: </p>

<p>Description: </p>

<p>Copyright: Copyright (c) 2005</p>

<p>Company: </p>

@author not attributable

@version 10

/

public class Untitled1

{

public Untitled1()

{

}

/

判断是否润年

@param ddate

@return

/

public static boolean isLeapYear(String ddate) {

/

详细设计: 1被400整除是闰年,否则: 2不能被4整除则不是闰年 3能被4整除同时不能被100整除则是闰年

3能被4整除同时能被100整除则不是闰年

/

Date d = strToDate(ddate);

GregorianCalendar gc = (GregorianCalendar) CalendargetInstance();

gcsetTime(d);

int year = gcget(CalendarYEAR);

if ((year % 400) == 0)

return true;

else if ((year % 4) == 0) {

if ((year % 100) == 0)

return false;

else

return true;

} else

return false;

}

/

得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数

/

public static String getNextDay(String nowdate, String delay) {

try{

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

String mdate = "";

Date d = strToDate(nowdate);

long myTime = (dgetTime() / 1000) + IntegerparseInt(delay) 24 60 60;

dsetTime(myTime 1000);

mdate = formatformat(d);

return mdate;

}catch(Exception e){

return "";

}

}

/

将短时间格式字符串转换为时间 yyyy-MM-dd

@param strDate

@return

/

public static Date strToDate(String strDate) {

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

ParsePosition pos = new ParsePosition(0);

Date strtodate = formatterparse(strDate, pos);

return strtodate;

}

/

获取一个月的最后一天

@param dat

@return

/

public static String getEndDateOfMonth(String dat) {// yyyy-MM-dd

String str = datsubstring(0, 8);

String month = datsubstring(5, 7);

int mon = IntegerparseInt(month);

if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) {

str += "31";

} else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {

str += "30";

} else {

if (isLeapYear(dat)) {

str += "29";

} else {

str += "28";

}

}

return str;

}

/

根据一个日期,返回是星期几的字符串

@param sdate

@return

/

public static String getWeek(String sdate) {

// 再转换为时间

Date date = strToDate(sdate);

Calendar c = CalendargetInstance();

csetTime(date);

// int hour=cget(CalendarDAY_OF_WEEK);

// hour中存的就是星期几了,其范围 1~7

// 1=星期日 7=星期六,其他类推

return new SimpleDateFormat("EEEE")format(cgetTime());

}

public static String getWeekStr(String sdate){

String str = "";

str = getWeek(sdate);

if("1"equals(str)){

str = "星期日";

}else if("2"equals(str)){

str = "星期一";

}else if("3"equals(str)){

str = "星期二";

}else if("4"equals(str)){

str = "星期三";

}else if("5"equals(str)){

str = "星期四";

}else if("6"equals(str)){

str = "星期五";

}else if("7"equals(str)){

str = "星期六";

}

return str;

}

public static String getNowMonth(String sdate) {

// 取该时间所在月的一号

//sdate = sdatesubstring(0, 8) + "01";

sdate = sdate + "-01";

// 得到这个月的1号是星期几

Calendar c = CalendargetInstance();

Date date = strToDate(sdate);

csetTime(date);

int u = cget(CalendarDAY_OF_WEEK);

String newday = getNextDay(sdate, (1 - u) + "");

return newday;

}

public static String getMonthDate(String sdate) {

// 取该时间所在月的一号

//sdate = sdatesubstring(0, 8) + "01";

sdate = sdate + "-01";

// 得到这个月的1号是星期几

Calendar c = CalendargetInstance();

Date date = strToDate(sdate);

csetTime(date);

int u = cget(CalendarDAY_OF_WEEK);

// for(int i=0;i<)

String edate=getEndDateOfMonth(sdate);

String newday;

newday = getNextDay(sdate, (1 - u) + "");

String week;

int i=0,j=1;

Systemoutprintln();

do

{

newday=getNextDay(sdate,""+i++);

week=getWeek(newday);

if(!weekequals("星期日")&&!weekequals("星期六"))

{

Systemoutprintln("第"+(j)+"周");

Systemoutprint(newday);

Systemoutprint(week);

Systemoutprintln();

}

if(weekequals("星期六"))j++;

}

while(!newdayequals(edate));

return newday;

}

static public void main(String[] args)

{

getMonthDate("2011-05");

}

}

SQL语法的问题,只要把Insert into句改成下面这样就可以了:

ADoQuery1SQLAdd('Insert into 测试表(时间) values('''+FormatDateTime('yyyy-mm-dd', StrToDate(a))+''')');

注意那些单引号。

附件和都一样的。都是2进制流。读取出来的时候保存格式正确就行

procedure TForm1LoadPictureClick(Sender: TObject); // 上传

begin

OpenPictureDialog1Title := '打开';

if OpenPictureDialog1Execute then

begin

Image1PictureLoadFromFile(OpenPictureDialog1FileName);

end;

end; procedure TForm1saveClick(Sender: TObject); //保存

var

Stream:TMemoryStream;

begin

try

Stream := TMemoryStreamCreate; // 创建内存流

Image1PictureGraphicSaveToStream(Stream); // 将保存到内存流中 //Image1PictureLoadFromFile(OpenPictureDialog1FileName);(另一种方法)

adoquery1Close;

adoquery1SQLClear;

adoQuery1SQLAdd('Insert into test3 values (:id,:photo)');

ADOQuery1ParametersParamByName('id')Value := editIdText;

adoQuery1ParametersParamByName('photo')LoadFromStream(Stream,ftBlob); // 读取保存的内存图

adoquery1ExecSQL;

finally

StreamFree; // 释放内存流

end;

end; procedure TForm1ReadClick(Sender: TObject); // 读取

var

Stream:TMemoryStream;

Jpg:TjpegImage;

begin

ADOQuery1Close;

ADOQuery1SQLText:='SELECT FROM test3 where id =' + editIdText; // 查询

ADOQuery1Open;

if not ADOQuery1FieldByName('photo')IsNull then

begin

Stream:=TMemoryStreamCreate ;

Jpg:=TjpegImageCreate ;

TBlobField(ADOQuery1FieldByName('photo'))SaveToStream(Stream); // 显示的转换为BlobField并保存到内存流

StreamPosition :=0;

jpgLoadFromStream(Stream); // 加载

image2PictureAssign(Jpg);

end

else

begin

image2Picture :=nil;

end; StreamFree; JpgFree;end;

adoqueryclose

adoquerysqlclear

adoquerysqltext:='select

fromm

'

adoquerysqladd('select

from')

adoqueryopen

adoqueryexecsql

以上就是关于java 根据输入的年月计算出这个月有几周全部的内容,包括:java 根据输入的年月计算出这个月有几周、用Delphi向数据库中插入时间、delphi 文件以数据流方式从SQL 2008存入或读取附件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9505661.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存