新手学Java做题目的一些疑问

sinat_38456507 2017-04-23 11:24:14
楼主目前在MOOC上面学习翁恺老师的课程,目前才学到判断,做作业的时候有一道题我没弄懂,希望能得到帮助。
题目内容:
UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。
有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据。
你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。
提醒:要小心跨日的换算。

输入格式:
一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而且分小于10分,需要保留十位上的0。

输出格式:
一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而且分小于10分,需要保留十位上的0。

输入样例:
933

输出样例:
133
以上是题目
package main;

import java.util.Scanner;

public class main{
public static void main(String[] args){
// TODO Auto-generated method stub
Scanner in =new Scanner(System.in);
int BJT;
int UTC=0;
BJT=in.nextInt();
int hour;
int min;
hour=BJT/100;
min=BJT%100;
if(BJT>=0&&BJT<=2359)
{
if(hour<8&&min<=59)
{
UTC=BJT+2400-800;
System.out.println(UTC);
}
if(hour>=8&&min<=59)
{
UTC=BJT-800;
System.out.println(UTC);
}
}
if(min>59)
{
System.out.println("error");
}
}
}
上面是我写的代码

这是我提交作业时系统显示的,请问有什么错误。
...全文
444 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hymanxq 2017-04-29
  • 打赏
  • 举报
回复
类名和文件名不一致。
Joe K 2017-04-28
  • 打赏
  • 举报
回复
LZ对类和接口的命名还不熟悉,一般类和接口首字母都大些,关键字才小写。另外,你的类名main和类下的main方法容易混淆,很容易让人以为是构造方法。从出错提示来看,你的文件名没有和类名保持一致,还有文件的后缀为.java
青木刀风 2017-04-26
  • 打赏
  • 举报
回复
公共类名和文件名不一致
sinat_38456507 2017-04-24
  • 打赏
  • 举报
回复
谢谢啦,我是用的eclipse,不过我今天早上看了书,才发现是这样。
MikeDDT009 2017-04-23
  • 打赏
  • 举报
回复
不知道你使用的什么编译软件,建议下载个eclipse(这个会自动生成,不用你自己这样了)来用,你这个编译报错的原因是外面需要一个名字和你建立的公开类名一样名字的文件main。 举个例子,你做了个java程序(一个名字+ .java):里面代码有个公开类(public(修饰符)的class(类) + 类名)。那么你的java程序的名字和里面的类名必须一致。 PS: 1.所以建议你用eclipse,会自动生成和判断一些编译错误,方便新手搞起,不会犯这种错 2.类名首写字母一定大写(采用骆驼峰命名),这算是一个约定俗成的书写规则

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧