本帖最后由 奋斗丶小Z 于 2016-3-18 11:49 编辑
UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,07表示0点7分。
有效的输入范围是0到2359,即你的程序不可能读到0到2359以外的输入数据。
你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。
提醒:要小心跨日的换算。
输入格式:
一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。
输出格式:
一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。
输入样例:
903
输出样例:
103
[C#] 纯文本查看 复制代码 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _52pojie2
{
class Program
{
static void Main(string[] args)
{
int time, i, temp;
int[] a = new int[4];
a[2] = 0;
Console.WriteLine("Please input the time!");
time = int.Parse(Console.ReadLine());
temp = time;
if (time < 0 || time > 2359)
{
Console.WriteLine("you have a wrong nuber!");
Console.Read();
}
else
{
for (i = 0; i < 4; i++)
{
a[i] = time / (int)Math.Pow(10, 3 - i);
time -= a[i] * (int)Math.Pow(10, 3 - i);
}
time = a[0] * 10 + a[1];
temp = a[2] * 10 + a[3];
if (time < 24 && temp < 60)
{
if (a[0] == 0 && a[1] == 0)
{
Console.WriteLine("{0}{1}", a[2], a[3]);
Console.Read();
}
if (time == 8)
{
Console.WriteLine("{0}", temp);
Console.Read();
}
if (time > 8)
{
Console.WriteLine("{0}{1}", time - 8, temp);
Console.Read();
}
else
{
Console.WriteLine("{0}{1}", 16 + a[1], temp);
Console.Read();
}
}
else
{
Console.WriteLine("you have a wrong nuber");
Console.Read();
}
}
}
}
}
虚心求指导,刚刚学习C#,这代码很不简洁,大神可以优化,可以另写,,,,哈哈
|