自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Python列表中判斷是否包含上午或者下午的時(shí)間

開(kāi)發(fā) 后端
在Python中,要判斷一個(gè)包含時(shí)間戳的列表是否同時(shí)包含上午(AM)和下午(PM)的時(shí)間,你首先需要定義什么是上午和下午。通常,我們認(rèn)為上午是從午夜到中午12點(diǎn),下午是從中午12點(diǎn)到午夜。

一、判斷是否包含上午和下午

在Python中,要判斷一個(gè)包含時(shí)間戳的列表是否同時(shí)包含上午(AM)和下午(PM)的時(shí)間,你首先需要定義什么是上午和下午。通常,我們認(rèn)為上午是從午夜到中午12點(diǎn),下午是從中午12點(diǎn)到午夜。

由于你的時(shí)間戳格式是YYYY-MM-DD HH:MM:SS,并且沒(méi)有AM或PM的指示符,你需要根據(jù)小時(shí)數(shù)來(lái)判斷是上午還是下午。通常,我們可以認(rèn)為小時(shí)數(shù)在00到11之間是上午,小時(shí)數(shù)在12到23之間是下午。

下面是一個(gè)示例函數(shù),用于判斷列表dates是否同時(shí)包含上午和下午的時(shí)間戳:

from datetime import datetime  
  
class TimeChecker:  
      def contains_morning_and_afternoon(self, dates):
              morning_found = False
              afternoon_found = False

              for date_str in dates:
                  # 將字符串轉(zhuǎn)換為datetime對(duì)象
                  date_obj = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
                  # 獲取小時(shí)數(shù)
                  hour = date_obj.hour

                  # 判斷是上午還是下午
                  if 0 <= hour < 12:
                      morning_found = True
                  elif 12 <= hour < 24:
                      afternoon_found = True

              if morning_found and afternoon_found:  # 上午和下午都有,返回3
                  return 3
              elif morning_found:  # 只有上午,返回1
                  return 1
              elif afternoon_found:  # 只有下午,返回2
                  return 2
              else:  # 上午和下午都沒(méi)有,返回0
                  return 0

# 使用示例  
time_checker = TimeChecker()  
dates = ["2024-04-11 10:03:40", "2024-04-11 15:03:40"]  
result = time_checker.contains_morning_or_afternoon(dates)  
print(result)  # 根據(jù)當(dāng)前時(shí)間,輸出可能是1, 2, 或 3

在這個(gè)函數(shù)中,我們遍歷列表中的每個(gè)時(shí)間戳字符串,將其轉(zhuǎn)換為datetime對(duì)象,然后檢查小時(shí)數(shù)來(lái)確定是上午還是下午。我們使用兩個(gè)布爾變量morning_found和afternoon_found來(lái)跟蹤是否找到了上午和下午的時(shí)間。如果在遍歷過(guò)程中同時(shí)找到了上午和下午的時(shí)間,函數(shù)會(huì)提前返回True。如果遍歷結(jié)束后都沒(méi)有找到上午和下午的時(shí)間,函數(shù)會(huì)返回False。

二、判斷是否只檢查上午或下午的邏輯

要增加根據(jù)當(dāng)前時(shí)間來(lái)判斷是否只檢查上午或下午的邏輯,你需要首先獲取當(dāng)前時(shí)間的小時(shí)數(shù),然后根據(jù)這個(gè)小時(shí)數(shù)來(lái)決定是否只檢查上午或下午的時(shí)間戳。以下是修改后的代碼:

from datetime import datetime  
  
class TimeChecker:  
    def contains_morning_or_afternoon(self, dates):  
        # 獲取當(dāng)前時(shí)間的小時(shí)數(shù)  
        current_hour = datetime.now().hour  
        morning_found = False  
        afternoon_found = False  
  
        # 根據(jù)當(dāng)前時(shí)間決定檢查策略  
        if 0 <= current_hour < 12:  
            # 當(dāng)前是上午,只檢查上午的時(shí)間戳  
            for date_str in dates:  
                date_obj = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")  
                hour = date_obj.hour  
                if 0 <= hour < 12:  
                    morning_found = True  
                    break  # 找到上午的時(shí)間就退出循環(huán)  
        elif 12 <= current_hour < 24:  
            # 當(dāng)前是下午或晚上,只檢查下午的時(shí)間戳  
            for date_str in dates:  
                date_obj = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")  
                hour = date_obj.hour  
                if 12 <= hour < 24:  
                    afternoon_found = True  
                    break  # 找到下午的時(shí)間就退出循環(huán)  
  
        # 根據(jù)找到的時(shí)間返回相應(yīng)的值  
        if morning_found and afternoon_found:  
            return 3  # 上午和下午都有  
        elif morning_found:  
            return 1  # 只有上午  
        elif afternoon_found:  
            return 2  # 只有下午  
        else:  
            return 0  # 上午和下午都沒(méi)有  
  
# 使用示例  
time_checker = TimeChecker()  
dates = ["2024-04-11 10:03:40", "2024-04-11 15:03:40"]  
result = time_checker.contains_morning_or_afternoon(dates)  
print(result)  # 根據(jù)當(dāng)前時(shí)間,輸出可能是1, 2, 或 3

在這個(gè)修改后的代碼中,TimeChecker 類有一個(gè)方法contains_morning_or_afternoon,它首先獲取當(dāng)前時(shí)間的小時(shí)數(shù),然后根據(jù)這個(gè)小時(shí)數(shù)來(lái)決定是檢查上午的時(shí)間戳還是下午的時(shí)間戳。如果當(dāng)前是上午,它就只查找列表中的上午時(shí)間戳;如果當(dāng)前是下午或晚上,它就只查找列表中的下午時(shí)間戳。一旦找到匹配的時(shí)間段,它就會(huì)退出循環(huán)并返回相應(yīng)的值。如果列表中沒(méi)有找到任何匹配的時(shí)間段,它就會(huì)返回0。

責(zé)任編輯:姜華 來(lái)源: 今日頭條
相關(guān)推薦

2023-09-19 23:21:48

Python列表

2024-01-09 16:43:49

Shell腳本開(kāi)發(fā)

2021-11-28 23:54:28

子樹(shù)B結(jié)構(gòu)

2024-07-22 15:42:08

Linux字符串

2020-10-14 06:18:20

Golang字符串數(shù)組

2024-10-09 07:59:10

C#接口信息

2021-11-08 06:34:08

辭退面試項(xiàng)目

2020-02-12 12:28:29

python列表數(shù)據(jù)類型

2020-03-02 00:32:08

Python列表for循環(huán)

2020-10-31 21:59:37

Python列表開(kāi)發(fā)

2023-05-04 07:43:47

MySQL數(shù)據(jù)庫(kù)

2018-12-14 09:32:06

億級(jí)數(shù)據(jù)存在

2024-08-28 10:04:17

2023-03-26 00:15:43

2010-03-15 12:36:26

Python列表

2020-10-22 08:06:05

JavaScrip語(yǔ)言類型

2020-10-22 14:00:31

JavaScript數(shù)字變量

2010-11-11 12:06:39

SQL自增列

2021-02-01 07:55:37

JS 數(shù)組元素

2018-12-14 09:16:31

裝載數(shù)據(jù)數(shù)組
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)