首页 > 其他分享 >获取天时分之间的时间间隔,返回天时分格式的日期,利用一天1440分钟

获取天时分之间的时间间隔,返回天时分格式的日期,利用一天1440分钟

时间:2024-04-26 16:56:11浏览次数:27  
标签:string 时分 int Substring 1440 格式 endTime ToInt32

 

写了老半天,还是电脑写的更简单,原来split还可以这么用,学到了。记录下

//我写的

public static string RetrieveSpanTimeByTime(string firstTime, string endTime)
{
int firstDayIndex = firstTime.IndexOf("天");
int endDayIndex = endTime.IndexOf("天");
int firstHourIndex = firstTime.IndexOf("时");
int endHourIndex = endTime.IndexOf("时");
int firstMinuteIndex = firstTime.IndexOf("分");
int endMinuteIndex = endTime.IndexOf("分");


int firstDay = firstDayIndex >= 0 ? firstTime.Substring(0, firstDayIndex).ToInt32() : 0;//获取天数
int endDay = endDayIndex >= 0 ? endTime.Substring(0, endDayIndex).ToInt32() : 0;
int firstHour = firstHourIndex >= 0&& firstDayIndex >= 0?firstTime.Substring(firstDayIndex + 1, firstHourIndex - firstDayIndex - 1).ToInt32():firstHourIndex >= 0 ? firstTime.Substring(0, firstHourIndex).ToInt32() : 0;//获取时前面的数字
int endHour = endHourIndex >= 0 && endDayIndex >= 0 ? endTime.Substring(endDayIndex + 1, endHourIndex - endDayIndex - 1).ToInt32() : endHourIndex >= 0 ? endTime.Substring(0, endHourIndex).ToInt32():0;
int firstMinute = firstHourIndex >= 0 ? firstTime.Substring(firstHourIndex + 1, firstMinuteIndex - firstHourIndex - 1).ToInt32() : firstDayIndex >= 0 ? firstTime.Substring(firstDayIndex + 1, firstMinuteIndex- firstDayIndex-1).ToInt32() : firstTime.Substring(0, firstMinuteIndex).ToInt32();//获取分前面的数字
int endMinute = endHourIndex >= 0 ? endTime.Substring(endHourIndex + 1, endMinuteIndex - endHourIndex - 1).ToInt32() : endDayIndex >= 0? endTime.Substring(endDayIndex + 1, endMinuteIndex- endDayIndex-1).ToInt32(): endTime.Substring(0, endMinuteIndex).ToInt32();



int firstTotleMinute = firstDay * 1440 + firstHour * 60 + firstMinute;//先转为分钟
int endTotleMinute = endDay * 1440 + endHour * 60 + endMinute;
int leftMinuteTime = firstTotleMinute - endTotleMinute;//总的时长-打回的时长
string returnDay = string.Empty;
string returnHour = string.Empty;
string returnMinute = string.Empty;
if (leftMinuteTime / 1440 != 0)//转为天,时,分的格式
{
returnDay = leftMinuteTime / 1440 + "天";
}
if (leftMinuteTime % 1440 / 60 != 0)
{
returnHour = leftMinuteTime % 1440 / 60 + "时";
}
returnMinute = leftMinuteTime % 1440 % 60 + "分";
return returnDay + returnHour + returnMinute;

}

 

 

//电脑写的

using System;

public class TimeInterval
{
public static string GetTimeInterval(string startTime, string endTime)
{
// 分解时间成分
int[] startComponents = ParseTime(startTime);
int[] endComponents = ParseTime(endTime);

// 将时间转换为分钟
int startMinutes = startComponents[0] * 1440 + startComponents[1] * 60 + startComponents[2];
int endMinutes = endComponents[0] * 1440 + endComponents[1] * 60 + endComponents[2];

// 计算时间间隔
int intervalMinutes = endMinutes - startMinutes;

// 处理负时间间隔
if (intervalMinutes < 0)
intervalMinutes += 1440 * 2; // 加两天的分钟数

// 将分钟转换回天时分
int days = intervalMinutes / 1440;
int hours = (intervalMinutes % 1440) / 60;
int minutes = intervalMinutes % 60;

// 返回结果
return $"{days}天{hours}时{minutes}分";
}

private static int[] ParseTime(string time)
{
string[] parts = time.Split('天', '时', '分');
return new int[]
{
int.Parse(parts[0]),
int.Parse(parts[1]),
int.Parse(parts[2])
};
}
}

// 使用示例
class Program
{
static void Main()
{
string startTime = "1天5时30分";
string endTime = "2天6时45分";
string interval = TimeInterval.GetTimeInterval(startTime, endTime);
Console.WriteLine(interval); // 输出: 1天1小时15分
}
}

标签:string,时分,int,Substring,1440,格式,endTime,ToInt32
From: https://www.cnblogs.com/Dongmy/p/18159288

相关文章

  • 根据不同的编码格式读取txt文件内容
    参考:https://blog.csdn.net/chiwang1984/article/details/8593240importlombok.extern.slf4j.Slf4j;importjava.io.BufferedReader;importjava.io.DataInputStream;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStreamReader;imp......
  • 【python省时间】时间转换、日期格式化、时间戳转字符、
    1、日期格式化defpaserTime(timestamp):t=time.time()f=time.localtime(timestamp/1000)print(t)#原始时间数据#print(int(t))#秒级时间戳print(int(round(t*1000)))#毫秒级时间戳#nowTime=lambda:int(round(t*......
  • Python 字符串格式化指南
    前言在Python中,字符串格式化是一种常见且重要的操作,用于将变量或值插入到字符串中,并控制输出的格式。本文将介绍几种常见的字符串格式化方法,帮助大家掌握在Python中有效地处理字符串的技巧。方法一:使用%操作符格式化字符串使用%操作符是一种传统的字符串格式化方法,可......
  • springboot中使用spring-javaformat-maven-plugin格式化代码插件
    在springboot项目中,想通过使用插件来统一项目中的代码,我这里选用的是spring-javaformat-maven-plugin。maven项目中,使用步骤如下:一、导入插件依赖pom.xml中添加<build><plugins><!--格式化代码插件--><plugin><groupId>i......
  • Qt/C++音视频开发71-指定mjpeg/h264格式采集本地摄像头/存储文件到mp4/设备推流/采集
    一、前言用ffmpeg采集本地摄像头,如果不指定格式的话,默认小分辨率比如640x480使用rawvideo格式,大分辨率比如1280x720使用mjpeg格式,当然前提是这个摄像头设备要支持这些格式。目前市面上有一些厂家做的本地设备支持264格式,这个压缩率极高,由于采集到的就是264格式的裸流,所以不用编码......
  • golang工具函数,把一个金额整型,单位为分,转成"1,231,111.00"格式的字符串
    这个函数首先将整数除以100来获取代表元的浮点数,然后格式化此数值为两位小数的字符串。接下来,函数将字符串分成整数和小数部分,并且为整数部分添加千位分隔符。最后,如果存在小数部分,它会将这两部分重新组合并返回正确格式化的金额字符串。为了正确地处理负数,我们需要先检查金额是......
  • Oracle以及PG中将指定用户的primary,unique索引按照指定格式输出
    ---OracleSELECTLOWER(c.table_name)||':'||LOWER(i.index_name)||':'||LOWER(wm_concat(c.column_name))ASoutputFROMall_indexesiJOINall_ind_columnscONi.index_name=c.index_nameANDi.table_name=c.table_na......
  • ELF文件格式解析器 原理 + 代码
    参考:https://bbs.kanxue.com/thread-259901.htm写在前面:   读《Linux二进制》,发现作者对ELF文件格式部分并没有做详细介绍,为了加深对elf文件格式理解,我自己着手写了个解析器,会和readelf工具协同对比。 原理:  ELF文件(目标文件)格式主要三种:1.可重定向文件(Re......
  • delphi Unix时间戳 转yyyy-mm-dd hh:mm:ss 格式字符串
    functionUnixTimeStampToDateTimeStr(UnixTimeStamp:Int64):string;varDateTimeValue:TDateTime;begin//第二个参数默认为true,设置为false,会默认以本地时区来+8小时,因为mysql里村的utc时间秒数DateTimeValue:=UnixToDateTime(UnixTimeStampdiv1000,False......
  • JTCR-正则、反射和文本格式化-24 (end)
    正则Pattern类用于定义正则表达式,Matcher类用于匹配正则表达式。Pattern没有构造器,使用工厂方法compile()创建模式(pattern)。staticPatterncompile(Stringpattern)它将字符串转换成Matcher可以使用的正则表达式。Pattern的matcher()方法创建Matcher。Matcherm......