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);
}
}
}