A. java時間賦值問題..
Date是對象,那麼你在給Paymentlimittime賦值時是將Date的引用給了它,
接著你把Date改成了17點回,那答么指向Date的Paymentlimittime也就變成了17點
明白?
你應該重新創建一個Date對象,設置為17點,賦值給Paymentlimittimeend
B. java 時間現格式為00:00:00開始計時,如何表示
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Timer;
public class Test extends JFrame{
JLabel lbl=new JLabel();
Date now=new Date();
public Test() {
now.setHours(0);
now.setMinutes(0);
now.setSeconds(0);
Timer timer=new Timer(1000,new ActionListener(){
public void actionPerformed(ActionEvent e) {
Date now2=new Date(now.getTime()+1000);
now=now2;
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
lbl.setText(formatter.format(now));
}
});
timer.start();
this.setLayout(new FlowLayout());
this.add(lbl);
this.setSize(300,200);
this.setVisible(true);
}
public static void main(String[] args) {
Test t=new Test();
}
}
C. java 計算兩個時間之間的差。
跨日的
import java.util.Date;
public class Test {
public static void main(String[] args) {
String time1 = "23:50";
String time2 = "00:20";
Date date1 = new Date();
Date date2 = new Date();
date1.setDate(1);//假定日期為1號
date1.setHours(23);//第一個小時
date1.setMinutes(50);//第一個分
date2.setDate(date1.getDate()+1);//第二天為2號
date2.setHours(0);//第二個小時
date2.setMinutes(20);//第二個分
long dt1MillSeconds = date1.getTime();
long dt2MillSeconds = date2.getTime();
int julianSeconds = (int) (dt2MillSeconds - dt1MillSeconds)/60/1000;//相差分數
System.out.println(julianSeconds);
}
}
-------------
30
D. java中如何實現自動計時功能,就是點擊一個start按鈕就開始計時,以秒為單位
簡單代碼如下:
importjava.awt.Button;
importjava.awt.FlowLayout;
importjava.awt.Label;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.text.SimpleDateFormat;
importjava.util.Date;
importjavax.swing.JFrame;
importjavax.swing.Timer;
@SuppressWarnings("serial")
{
finalLabellab=newLabel();
Datenow=newDate();
@SuppressWarnings("deprecation")
publicTimers(){
.setHours(0);
now.setMinutes(0);
now.setSeconds(0);
setBounds(550,270,200,150);
finalTimertimer=newTimer(1000,newActionListener(){
publicvoidactionPerformed(ActionEvente){
Datenow2=newDate(now.getTime()+1000);
now=now2;
SimpleDateFormatformatter=newSimpleDateFormat("HH:mm:ss");
lab.setText(formatter.format(now));
}
});
Buttonb1=newButton("開始");
Buttonb2=newButton("停止");
b2.setBounds(40,40,40,40);
b1.setBounds(30,30,30,30);
b1.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
Buttonb=(Button)e.getSource();
b.setLabel("開始");
timer.start();
}
});
b2.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
Buttonb=(Button)e.getSource();
b.setLabel("停止");
timer.stop();
}
});
this.setLayout(newFlowLayout());
this.add(b2);
this.add(b1);
this.add(lab);
this.setSize(300,200);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
publicstaticvoidmain(String[]args){
Timerst=newTimers();
t.lab.setText("00:00:00");
}
}
不知是否幫到你,如滿意請採納!
E. 求用java寫的統計員工每天的工作量的類
//問的問題應該清楚一點,我是看了半天才理解。。
publicDoublegetWorkPercent(Datein,Dateout){
//錯誤
if(in.after(out)){
return0D;
}
//考慮周末
SimpleDateFormatdateFm=newSimpleDateFormat("EEEE");
if("星期日".equals(dateFm.format(in))||"星期六".equals(dateFm.format(in))){
return0D;
}
DaterestStart=in;
DaterestEnd=in;
restStart.setHours(12);
restEnd.setHours(13);
//上午時間
LongmorningTimes=restStart.getTime()-in.getTime();
//下午時間
LongafterTimes=out.getTime()-restEnd.getTime();
//上班時間如果在休息時間之後,或者休息時間中間上班,下班。則上班總時間為0;
LongtotalTimes=(morningTimes<0?0:morningTimes)+(afterTimes<0?0:afterTimes);
returntotalTimes/1000.0/60/60/8;
}
F. 用java定義一個學生類和課程類
你好!
publicclassCourse{
StringcourseName;
intcourseHour;
publicCourse(){
();
}
publicCourse(StringcourseName,intcourseHour){
super();
this.courseName=courseName;
this.courseHour=courseHour;
}
publicStringgetCourseName(){
returncourseName;
}
publicvoidsetCourseName(StringcourseName){
this.courseName=courseName;
}
publicintgetCourseHour(){
returncourseHour;
}
publicvoidsetCourseHour(intcourseHour){
this.courseHour=courseHour;
}
}
publicclassStudent{
Stringname;
intgrade;
Course[]courses;
inthours;
publicStudent(){
super();
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetGrade(){
returngrade;
}
publicvoidsetGrade(intgrade){
this.grade=grade;
}
publicCourse[]getCourses(){
returncourses;
}
publicvoidsetCourses(Course[]courses){
this.courses=courses;
}
publicintgetHours(){
returnhours;
}
publicvoidsetHours(inthours){
this.hours=hours;
}
publicvoidshowMessage(){
System.out.println(name+""+grade+"年級");
System.out.println("選修的課程包括:");
for(inti=0;i<courses.length;i++){
System.out.println("("+(i+1)+") "+courses[i].courseName+" "+courses[i].courseHour+"分");
hours+=courses[i].courseHour;
}
System.out.println("總學分:"+hours);
}
}
importjava.util.Scanner;
publicclassmain{
publicstaticvoidmain(String[]args){
Scannerscan=newScanner(System.in);
System.out.print("輸入學生的人數:");
intnumber=scan.nextInt();
Student[]stus=newStudent[number];
for(inti=1;i<=stus.length;i++){
Studentstu=newStudent();
System.out.print("請輸入第"+i+"個學生的姓名:");
StringstuName=scan.next();
stu.setName(stuName);
System.out.print("請輸入第"+i+"個學生的年級:");
intgrade=scan.nextInt();
stu.setGrade(grade);
System.out.print("請輸入第"+i+"個學生選幾門課程:");
intcourseNum=scan.nextInt();
Course[]_courses=newCourse[courseNum];
for(intj=1;j<=_courses.length;j++){
System.out.print("請輸入第"+j+"門課程的名稱:");
StringcourseName=scan.next();
System.out.print("請輸入第"+j+"門課程的學分:");
inthour=scan.nextInt();
_courses[j-1]=newCourse(courseName,hour);
}
stu.setCourses(_courses);
stus[i-1]=stu;
}
for(intk=1;k<=stus.length;k++){
System.out.println(""+"第"+k+"學生信息如下:");
stus[k-1].showMessage();
}
}
}
希望對你有幫助!
G. 用Java做的 定義一個時間類型(類名MyTime)
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
public class MyTime {
public String hour;
public String minute;
public String second;
public MyTime() {
hour = "00";
minute = "00";
second = "00";
}
public MyTime(String hour, String minute, String second) {
this.hour = hour;
this.minute = minute;
this.second = second;
}
public MyTime TimeAdd(MyTime t) {
SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");// 定義格式
String str1 = t.toString();// 時間字元串
String str2 = this.toString();// 時間字元串
Date date1 =null;
Date date2 =null;
try {// 構造時間字元串
date1= format.parse(str1);
} catch (ParseException e) {
date1 = new Date();//如果出錯為00:00:00
date1.setHours(0);
date1.setMinutes(0);
date1.setSeconds(0);
}
try {
date2= format.parse(str2);
} catch (ParseException e) {// 構造時間字元串
date2 = new Date();//如果出錯為00:00:00
date2.setHours(0);
date2.setMinutes(0);
date2.setSeconds(0);
}
TimeZone tz = TimeZone.getTimeZone("+0800");
Calendar c1=Calendar.getInstance();
c1.setTimeZone(tz);
c1.setTime(date1);//轉成Calendar類型方便計算
Calendar c2=Calendar.getInstance();
c2.setTimeZone(tz);
c2.setTime(date2);//轉成Calendar類型方便計算
String str= format.format(c1.getTimeInMillis()+c2.getTimeInMillis());
System.out.println(str);
return StrToTime(str);//返回時間
}
public MyTime StrToTime(String str) {
SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
try {
format.parse(str);
return new MyTime(str.substring(0, 2), str.substring(2, 4), str
.substring(4, 6));
} catch (Exception e) {
return new MyTime("00", "00", "00");
}
}
public String toString() {
return hour + ":" + minute + ":" + second;
}
public static void main(String[] args) {
MyTime myTime=new MyTime("01","05","05");
MyTime myTime2=new MyTime("02","02","01");
myTime.TimeAdd(myTime2);
}
}
相加方法小時有問題,是時區問題,不影響
H. java中的Date類為什麼很多方法被廢棄了
因為有更好的方法出現了唄。。。API里寫的很清楚
int getDate() 已過時。 從 JDK 1.1 開始,由 Calendar.get(Calendar.DAY_OF_MONTH) 取代。
int getDay() 已過時。 從 JDK 1.1 開始,由 Calendar.get(Calendar.DAY_OF_WEEK) 取代。
int getHours() 已過時。 從 JDK 1.1 開始,由 Calendar.get(Calendar.HOUR_OF_DAY) 取代。
int getMinutes() 已過時。 從 JDK 1.1 開始,由 Calendar.get(Calendar.MINUTE) 取代。
int getMonth() 已過時。 從 JDK 1.1 開始,由 Calendar.get(Calendar.MONTH) 取代。
int getSeconds() 已過時。 從 JDK 1.1 開始,由 Calendar.get(Calendar.SECOND) 取代。
I. JAVA 時間相加
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.roll(Calendar.SECOND, 15);
以上是簡單的實例代碼 將秒加上15
Calendar可以對時間進行寬松解釋 假設你加上15後超過60 會自動進位內
有一點需要注意的是容在對日期進行加減的時候請使用DAY_OF_YEAR 不要使用DAY_OF_MONTH
具體請參考API文檔
J. JAVA問題
經過測試以下代碼可以運行,不知道符不符合要求。不過說實話你的英語太爛了。
//Worker類
package payroll;
public abstract class Worker
{
private String name; //姓名
private double salary; //每小時薪水
private int hours; /簡畢森/工作時間
public Worker(){}
public Worker(String name,double salary,int hours){
this.name = name;
this.salary = salary;
this.hours = hours;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public double getSalary(){
return salary;
}
public void setSalary(double salary){
this.salary = salary;
}
public int getHours(){
return hours;
}
public void setHours(int hours){
this.hours = hours;
}
//計算報酬
public abstract double computePayment();
}
//HourlyWorker類
package payroll;
public class HourlyWorker extends Worker
{
public HourlyWorker(){
super();
}
public HourlyWorker(String name,double salary,int hours){
super(name,salary,hours);
}
public double computePayment(){
double payment = 0; //應發工資
int hours = this.getHours(); //工作時間攔畝
double salary = this.getSalary(); //每小時薪數備水
if(hours<=40){
payment = hours * salary;
}else{
payment = salary * 40 + (hours-40)*salary*2;
}
return payment;
}
}
//Salaried類
package payroll;
public class SalariedWorker extends Worker
{
public SalariedWorker(){
super();
}
public SalariedWorker(String name,double salary,int hours){
super(name,salary,hours);
}
public double computePayment(){
double payment = 0;
int hours = 36 ;
payment = getSalary() * hours;
return payment;
}
}
//測試類
package mytest;
import payroll.*;
public class WorkerTester
{
public static void main(String[] args){
Worker worker1 = new HourlyWorker("Jim",200,30);
Worker worker2 = new HourlyWorker("Tom",150,50);
Worker worker3 = new SalariedWorker("Rose",50,40);
Worker worker4 = new SalariedWorker("Jack",140,30);
Worker[] workers = new Worker[]{worker1,worker2,worker3,worker4};
for(int i = 0 ; i<workers.length ; i++){
Worker tester = workers[i];
double result = tester.computePayment();
System.out.println(tester.getName()+"的報酬為"+result);
}
}
}