Viết chương trình nhập vào tổng số giây in lên màn hình dưới dạng giờ, phút, giây Python

Mới có cuốn tài liệu [mới down của anh @david15894 thì phải], bỏ qua những câu dễ [những câu căn bản mà em đã làm cả chục lần để nhớ cái ý tưởng], em gặp câu này:
Một thiết bị hoạt động được t giây. Hãy viết chương trình chuyển số giây đó dưới dạng số giờ, số phút và số giây. VD Nhap vao so giay thiet bi hoat dong: 61 Thiet bi hoat dong duoc 0 gio 1 phut 1 giay.

Mọi người giúp em bài này
Thanks

Ý tưởng 1h = 60 phút, 1phút=60s, bạn cứ chia cho 60. VD: 61/60 = 1 dư 1, 150s = 150/60 = 2dư30 = 2phút30s. Nếu là giờ thì chia 3600.

Có S là số giây nhập vào:

  • giờ = s/3600
  • phút = s%3600/60
  • giây = s%3600%60

 

Cám ơn mọi người, em đi lấy s - 3600, 60 xem nó có âm không nên nghĩ mãi không giải quyết được

 

1 Like

 

 

 

Bạn xem thử đoạn code này. Mới nghĩ ra , có lỗi gì thì fix lại giúp mình.

#include int main[]{ int gio=0,giay=0,phut=0; printf["Nhap so giay :"]; scanf["%d",&giay]; if[giay=60&&giay>> t1 = [hours= 10, minutes = 3, seconds = 12]

  • t1 = t2 - t3
    t2 = [hours = 12, seconds= 2]
    t3 = [hours = 1, minutes = 4]
    >>> t1 = [hours= 11, minutes = 56, seconds = 2]
  • t1 = t2 * i
    t1 = i * t2
    t2 = [hours = 10, seconds= 2]
    i = 3
    >>> t1 = [days =1, hours = 6, seconds= 6]
  • t1 = t2
    t2 = [hours = 25, seconds= 2]
    >>> t1 = [days: 1, hours: 1, seconds: 2]
  • +t1
    Trả về t1
  • -t1
    t1 = [hours = 10, seconds= 2]
    >>> -t1 = [days = -1, hours = 13, minutes = 59, seconds= 58]
  • abs[t]: Giá trị tuyệt đối, tương đương với +t khi t.days >= 0, và là -t khi t.days < 0.
    t = [hours= -25, minutes = 3]
    >>> t = [days = -2, hours = 23, minutes = 3]
    >>> abs[t] = [days = 1, hours = 0, minutes = 57]
  • str[t]: Trả về string theo mẫu [D day[s], ][H]H:MM:SS[.UUUUUU], D có thể nhận giá trị âm.
  • repr[t]: Trả về string theo mẫu datetime.timedelta[D[, S[, U]]], D có thể nhận giá trị âm
  • Định dạng thời gian Python

    Ngày tháng và thời gian được sử dụng ở những dạng khác nhau, Mỹ sử dụng định dạng mm/dd/yyyy, trong khi dd/mm/yyyy phổ biến hơn ở Anh.

    Python có các phương thức strftime[] và strptime[] để xử lý việc này.

    strftime[] - định dạng thời gian thành một string.

    Ví dụ 11: Định dạng ngày tháng sử dụng strftime[]

    from datetime import datetime

    # ngày giờ hiện tại
    now = datetime.now[]

    t = now.strftime["%H:%M:%S"]
    print["time:", t]

    s1 = now.strftime["%m/%d/%Y, %H:%M:%S"]
    # định dạng mm/dd/YY H:M:S
    print["s1:", s1]

    s2 = now.strftime["%d/%m/%Y, %H:%M:%S"]
    # định dạng dd/mm/YY H:M:S
    print["s2:", s2]

    Chương trình trả về kết quả là:

    time: 04:34:52
    s1: 03/07/2019, 04:34:52
    s2: 07/03/2019, 04:34:52

    Ở đây %Y, %m, %d, %H... là các tham số định dạng. Phương thức strftime[] sử dụng để trả về một chuỗi được định dạng dựa trên các tham số đó.

    Phạm vi tham số:

    • %Y - year [0001,..., 2018, 2019,..., 9999]
    • %m - month [01, 02, ..., 11, 12]
    • %d - day [01, 02, ..., 30, 31]
    • %H - hour [00, 01, ..., 22, 23
    • %M - month [00, 01, ..., 58, 59]
    • %S - second [00, 01, ..., 58, 59]

    strptime[] - phân tích một string thành thời gian

    from datetime import datetime

    date_string = "7 March, 2019"
    print["date_string =", date_string]

    date_object = datetime.strptime[date_string, "%d %B, %Y"]
    print["date_object =", date_object]

    Khi bạn chạy chương trình, kết quả trả về là:

    date_string = 7 March, 2019
    date_object = 2019-03-07 00:00:00

    Hiển thị múi giờ trong Python

    Giả sử, bạn đang làm việc trên một dự án và cần hiển thị ngày giờ dựa trên múi giờ mình cần. Thay vì cố gắng tự search và tìm kiếm múi giờ, bạn nên sử dụng module pytZ như sau:

    from datetime import datetime
    import pytz

    local = datetime.now[]
    print["Local:", local.strftime["%m/%d/%Y, %H:%M:%S"]]

    tz_NY = pytz.timezone['America/New_York']
    datetime_NY = datetime.now[tz_NY]
    print["NY:", datetime_NY.strftime["%m/%d/%Y, %H:%M:%S"]]

    tz_London = pytz.timezone['Europe/London']
    datetime_London = datetime.now[tz_London]
    print["London:", datetime_London.strftime["%m/%d/%Y, %H:%M:%S"]]

    Chạy chương trình, kết quả trả về là:

    Local time: 2019-03-07 13:10:44.260462
    America/New_York time: 2019-03-07 13:10:44.260462
    Europe/London time: 2019-03-07 13:10:44.260462

    Ở ví dụ này, datetime_NY và datetime_London là các đối tượng datetime chứa ngày và giờ hiện tại của múi giờ tương ứng.

     

    Chủ Đề