问题描述
- C#时间重合判断,重合有4种情况,有没有列子?
-
C#时间重合判断,重合有4种情况,前半段重合 后半段重合 中间重合 当前时间是另一个时间端的中间有没有列子?
解决方案
这很好理解
设dt1s为第一开始时间 dt1e为第一结束时间 dt2s为第二开始时间 dt2e为第二结束时间
前半段重合 = dt1s > st2s && st2e > dt1e
后半段重合 = dt2s > st1s && st1e > dt2e
中间重合 = dt2s > dt1s && dt2e < dt1e
前时间是另一个时间段中间 = dt2s < dt1s && dt2e > dt1e
解决方案二:
对一个日期,你可以ToString("yyyy-MM-dd"),这样你可以格式化成任意格式,作比较就行了,判断是否在日期段中间,可以用TimeSpan,用两头的日期分别和你的日期相减,然后根据天数还是小时数等信息自己判断两个结果是否相等
解决方案三:
日期相互比较,不需要那么复杂吧。
DateTime dt = DateTime.Now;
if (dt.Hour == 18 && dt.Minute > 0)
{
//do something
}
解决方案四:
用ksoap2-android-assembly-2.5.4-jar-with-dependencies.jar这个
static String doMethodonServer(String methodname, Object[] argObjects) {
HttpTransportSE htse = new HttpTransportSE(wsdlUriString);
htse.debug = true;
// 2.使用SOAP1.1协议创建Envelope对象
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
// 3.创建SoapObject对象,该对象需要传入Web Service的命名空间、方法名
SoapObject request = new SoapObject(nameSpace, methodname);
// 4.设置传给WebService的参数
if (argObjects != null && argObjects.length > 0) {
for (int i = 0; i < argObjects.length; i++) {
request.addProperty("arg" + i, argObjects[i]);
}
}
// 5.将SoapObject设置为Envelope的传出SOAP消息体
envelope.bodyOut = request;
try {
htse.call(null, envelope);
if (envelope.getResponse() != null) {
return envelope.getResponse().toString();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
时间: 2025-01-01 20:09:46