上海飞旧金山时间换算,VC++环境怎么写代码?

编写程序解决以下问题。已知飞机由上海于6月2日17时飞往美国旧金山,飞行时间为14小时,计算飞机到达目的地的当地时间。我算出的结果是旧金山时间6月1日下午4点(考虑夏令时),就是不知道怎么写代码,请热心的大佬帮帮忙

首先计算出到达的北京时间(+14hr),然后根据时区算出当地时间(-16hr)。

计算时间首先算小时,小时为负的话,加上24,然后日期-1
日期为负数,加上上一个月的最大日期,月份-1
月份为负数,加上12,年份-1